aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliujisi@google.com <liujisi@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2011-04-28 09:37:40 +0000
committerliujisi@google.com <liujisi@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2011-04-28 09:37:40 +0000
commit5a5e67a25dce780ee0050d2bc76fa58d8437619a (patch)
treeee835bbed608655d59f6334c756741dad054f090
parent9cf65b7dd29adfb849b555eee3e3b93d7c45fc73 (diff)
downloadprotobuf-5a5e67a25dce780ee0050d2bc76fa58d8437619a.tar.gz
protobuf-5a5e67a25dce780ee0050d2bc76fa58d8437619a.tar.bz2
protobuf-5a5e67a25dce780ee0050d2bc76fa58d8437619a.zip
Make protobuf java JDK 1.5 compatible.
-rw-r--r--java/src/main/java/com/google/protobuf/GeneratedMessage.java8
-rw-r--r--java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java2
-rw-r--r--java/src/main/java/com/google/protobuf/SingleFieldBuilder.java2
-rw-r--r--java/src/main/java/com/google/protobuf/SmallSortedMap.java22
-rw-r--r--java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java30
-rw-r--r--java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java2
-rw-r--r--java/src/test/java/com/google/protobuf/SmallSortedMapTest.java44
-rw-r--r--java/src/test/java/com/google/protobuf/TestUtil.java2
8 files changed, 77 insertions, 35 deletions
diff --git a/java/src/main/java/com/google/protobuf/GeneratedMessage.java b/java/src/main/java/com/google/protobuf/GeneratedMessage.java
index 2c22fcab..5e32d75c 100644
--- a/java/src/main/java/com/google/protobuf/GeneratedMessage.java
+++ b/java/src/main/java/com/google/protobuf/GeneratedMessage.java
@@ -421,7 +421,7 @@ public abstract class GeneratedMessage extends AbstractMessage
return true;
}
- @Override
+ //@Override (Java
public final UnknownFieldSet getUnknownFields() {
return unknownFields;
}
@@ -445,7 +445,7 @@ public abstract class GeneratedMessage extends AbstractMessage
*/
private class BuilderParentImpl implements BuilderParent {
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void markDirty() {
onChanged();
}
@@ -1130,7 +1130,7 @@ public abstract class GeneratedMessage extends AbstractMessage
// obtained.
return new GeneratedExtension<ContainingType, Type>(
new ExtensionDescriptorRetriever() {
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public FieldDescriptor getDescriptor() {
return scope.getDescriptorForType().getExtensions()
.get(descriptorIndex);
@@ -1225,7 +1225,7 @@ public abstract class GeneratedMessage extends AbstractMessage
throw new IllegalStateException("Already initialized.");
}
descriptorRetriever = new ExtensionDescriptorRetriever() {
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public FieldDescriptor getDescriptor() {
return descriptor;
}
diff --git a/java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java b/java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java
index 0772eaca..0024f791 100644
--- a/java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java
+++ b/java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java
@@ -573,7 +573,7 @@ public class RepeatedFieldBuilder
}
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void markDirty() {
onChanged();
}
diff --git a/java/src/main/java/com/google/protobuf/SingleFieldBuilder.java b/java/src/main/java/com/google/protobuf/SingleFieldBuilder.java
index a92042e8..d4475f66 100644
--- a/java/src/main/java/com/google/protobuf/SingleFieldBuilder.java
+++ b/java/src/main/java/com/google/protobuf/SingleFieldBuilder.java
@@ -234,7 +234,7 @@ public class SingleFieldBuilder
}
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void markDirty() {
onChanged();
}
diff --git a/java/src/main/java/com/google/protobuf/SmallSortedMap.java b/java/src/main/java/com/google/protobuf/SmallSortedMap.java
index ccc20163..1cf270f3 100644
--- a/java/src/main/java/com/google/protobuf/SmallSortedMap.java
+++ b/java/src/main/java/com/google/protobuf/SmallSortedMap.java
@@ -411,22 +411,22 @@ class SmallSortedMap<K extends Comparable<K>, V> extends AbstractMap<K, V> {
this.value = value;
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public K getKey() {
return key;
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public V getValue() {
return value;
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public int compareTo(Entry other) {
return getKey().compareTo(other.getKey());
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public V setValue(V newValue) {
checkMutable();
final V oldValue = this.value;
@@ -535,13 +535,13 @@ class SmallSortedMap<K extends Comparable<K>, V> extends AbstractMap<K, V> {
private boolean nextCalledBeforeRemove;
private Iterator<Map.Entry<K, V>> lazyOverflowIterator;
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return (pos + 1) < entryList.size() ||
getOverflowIterator().hasNext();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public Map.Entry<K, V> next() {
nextCalledBeforeRemove = true;
// Always increment pos so that we know whether the last returned value
@@ -552,7 +552,7 @@ class SmallSortedMap<K extends Comparable<K>, V> extends AbstractMap<K, V> {
return getOverflowIterator().next();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
if (!nextCalledBeforeRemove) {
throw new IllegalStateException("remove() was called before next()");
@@ -589,22 +589,22 @@ class SmallSortedMap<K extends Comparable<K>, V> extends AbstractMap<K, V> {
private static class EmptySet {
private static final Iterator<Object> ITERATOR = new Iterator<Object>() {
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return false;
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public Object next() {
throw new NoSuchElementException();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
throw new UnsupportedOperationException();
}
};
private static final Iterable<Object> ITERABLE = new Iterable<Object>() {
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public Iterator<Object> iterator() {
return ITERATOR;
}
diff --git a/java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java b/java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java
index ee8fe190..83e5c796 100644
--- a/java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java
+++ b/java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java
@@ -60,62 +60,62 @@ public class UnmodifiableLazyStringList extends AbstractList<String>
return list.size();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public ByteString getByteString(int index) {
return list.getByteString(index);
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void add(ByteString element) {
throw new UnsupportedOperationException();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public ListIterator<String> listIterator(final int index) {
return new ListIterator<String>() {
ListIterator<String> iter = list.listIterator(index);
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return iter.hasNext();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public String next() {
return iter.next();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasPrevious() {
return iter.hasPrevious();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public String previous() {
return iter.previous();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public int nextIndex() {
return iter.nextIndex();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public int previousIndex() {
return iter.previousIndex();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
throw new UnsupportedOperationException();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void set(String o) {
throw new UnsupportedOperationException();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void add(String o) {
throw new UnsupportedOperationException();
}
@@ -127,17 +127,17 @@ public class UnmodifiableLazyStringList extends AbstractList<String>
return new Iterator<String>() {
Iterator<String> iter = list.iterator();
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return iter.hasNext();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public String next() {
return iter.next();
}
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
throw new UnsupportedOperationException();
}
diff --git a/java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java b/java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java
index 108a28e1..8b78893d 100644
--- a/java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java
+++ b/java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java
@@ -41,7 +41,7 @@ package com.google.protobuf;
*/
public class ForceFieldBuildersPreRun implements Runnable {
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void run() {
GeneratedMessage.enableAlwaysUseFieldBuildersForTesting();
}
diff --git a/java/src/test/java/com/google/protobuf/SmallSortedMapTest.java b/java/src/test/java/com/google/protobuf/SmallSortedMapTest.java
index 922115fc..8f77a036 100644
--- a/java/src/test/java/com/google/protobuf/SmallSortedMapTest.java
+++ b/java/src/test/java/com/google/protobuf/SmallSortedMapTest.java
@@ -32,7 +32,6 @@ package com.google.protobuf;
import junit.framework.TestCase;
-import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -46,6 +45,49 @@ import java.util.TreeSet;
* @author darick@google.com Darick Tong
*/
public class SmallSortedMapTest extends TestCase {
+ // java.util.AbstractMap.SimpleEntry is private in JDK 1.5. We re-implement it
+ // here for JDK 1.5 users.
+ private static class SimpleEntry<K, V> implements Map.Entry<K, V> {
+ private final K key;
+ private V value;
+
+ SimpleEntry(K key, V value) {
+ this.key = key;
+ this.value = value;
+ }
+
+ public K getKey() {
+ return key;
+ }
+
+ public V getValue() {
+ return value;
+ }
+
+ public V setValue(V value) {
+ V oldValue = this.value;
+ this.value = value;
+ return oldValue;
+ }
+
+ private static boolean eq(Object o1, Object o2) {
+ return o1 == null ? o2 == null : o1.equals(o2);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Map.Entry))
+ return false;
+ Map.Entry e = (Map.Entry) o;
+ return eq(key, e.getKey()) && eq(value, e.getValue());
+ }
+
+ @Override
+ public int hashCode() {
+ return ((key == null) ? 0 : key.hashCode()) ^
+ ((value == null) ? 0 : value.hashCode());
+ }
+ }
public void testPutAndGetArrayEntriesOnly() {
runPutAndGetTest(3);
diff --git a/java/src/test/java/com/google/protobuf/TestUtil.java b/java/src/test/java/com/google/protobuf/TestUtil.java
index 7c458d75..9109f419 100644
--- a/java/src/test/java/com/google/protobuf/TestUtil.java
+++ b/java/src/test/java/com/google/protobuf/TestUtil.java
@@ -3799,7 +3799,7 @@ public final class TestUtil {
private int invalidations;
- @Override
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
public void markDirty() {
invalidations++;
}