You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by nd...@apache.org on 2006/08/18 03:45:39 UTC
svn commit: r432462 [4/21] -
/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForDumping.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForDumping.java?rev=432462&r1=432461&r2=432462&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForDumping.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForDumping.java Thu Aug 17 18:45:35 2006
@@ -1,229 +1,229 @@
-/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package java.io;
-
-
-/**
- * An EmulatedFieldsForDumping is an object that represents a set of emulated
- * fields for an object being dumped. It is a concrete implementation for
- * ObjectOutputStream.PutField
- *
-
- * @see ObjectOutputStream.PutField
- * @see EmulatedFieldsForLoading
- */
-
-class EmulatedFieldsForDumping extends ObjectOutputStream.PutField {
- private EmulatedFields emulatedFields; // The actual representation, with a
- // more powerful API (set&get)
-
- /**
- * Constructs a new instance of EmulatedFieldsForDumping.
- *
- * @param streamClass
- * a ObjectStreamClass, which describe the fields to be emulated
- * (names, types, etc).
- */
- EmulatedFieldsForDumping(ObjectStreamClass streamClass) {
- super();
- emulatedFields = new EmulatedFields(streamClass.fields(),
- (ObjectStreamField[]) null);
- }
-
- /**
- * Return the actual EmulatedFields instance used by the receiver. We have
- * the actual work in a separate class so that the code can be shared. The
- * receiver has to be of a subclass of PutField.
- *
- * @return array of ObjectSlot the receiver represents.
- */
- EmulatedFields emulatedFields() {
- return emulatedFields;
- }
-
- /**
- * Find and set the byte value of a given field named <code>name</code> in
- * the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, byte value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the char value of a given field named <code>name</code> in
- * the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, char value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the double value of a given field named <code>name</code>
- * in the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, double value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the float value of a given field named <code>name</code>
- * in the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, float value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the int value of a given field named <code>name</code> in
- * the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, int value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the long value of a given field named <code>name</code> in
- * the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, long value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the Object value of a given field named <code>name</code>
- * in the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, Object value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the short value of a given field named <code>name</code>
- * in the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, short value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Find and set the boolean value of a given field named <code>name</code>
- * in the receiver.
- *
- * @param name
- * A String, the name of the field to set
- * @param value
- * New value for the field.
- *
- */
- public void put(String name, boolean value) {
- emulatedFields.put(name, value);
- }
-
- /**
- * Write the field values to the specified ObjectOutput.
- *
- * @param output
- * the ObjectOutput
- *
- * @throws IOException
- * If an IO exception happened when writing the field values.
- */
- public void write(ObjectOutput output) throws IOException {
- EmulatedFields.ObjectSlot[] slots = emulatedFields.slots();
- for (int i = 0; i < slots.length; i++) {
- EmulatedFields.ObjectSlot slot = slots[i];
- Object fieldValue = slot.getFieldValue();
- Class<?> type = slot.getField().getType();
- // WARNING - default values exist for each primitive type
- if (type == Integer.TYPE) {
- output.writeInt(fieldValue != null ? ((Integer) fieldValue)
- .intValue() : 0);
- } else if (type == Byte.TYPE) {
- output.writeByte(fieldValue != null ? ((Byte) fieldValue)
- .byteValue() : (byte) 0);
- } else if (type == Character.TYPE) {
- output.writeChar(fieldValue != null ? ((Character) fieldValue)
- .charValue() : (char) 0);
- } else if (type == Short.TYPE) {
- output.writeShort(fieldValue != null ? ((Short) fieldValue)
- .shortValue() : (short) 0);
- } else if (type == Boolean.TYPE) {
- output.writeBoolean(fieldValue != null ? ((Boolean) fieldValue)
- .booleanValue() : false);
- } else if (type == Long.TYPE) {
- output.writeLong(fieldValue != null ? ((Long) fieldValue)
- .longValue() : (long) 0);
- } else if (type == Float.TYPE) {
- output.writeFloat(fieldValue != null ? ((Float) fieldValue)
- .floatValue() : (float) 0);
- } else if (type == Double.TYPE) {
- output.writeDouble(fieldValue != null ? ((Double) fieldValue)
- .doubleValue() : (double) 0);
- } else {
- // Either array or Object
- output.writeObject(fieldValue);
- }
- }
- }
-}
+/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.io;
+
+
+/**
+ * An EmulatedFieldsForDumping is an object that represents a set of emulated
+ * fields for an object being dumped. It is a concrete implementation for
+ * ObjectOutputStream.PutField
+ *
+
+ * @see ObjectOutputStream.PutField
+ * @see EmulatedFieldsForLoading
+ */
+
+class EmulatedFieldsForDumping extends ObjectOutputStream.PutField {
+ private EmulatedFields emulatedFields; // The actual representation, with a
+ // more powerful API (set&get)
+
+ /**
+ * Constructs a new instance of EmulatedFieldsForDumping.
+ *
+ * @param streamClass
+ * a ObjectStreamClass, which describe the fields to be emulated
+ * (names, types, etc).
+ */
+ EmulatedFieldsForDumping(ObjectStreamClass streamClass) {
+ super();
+ emulatedFields = new EmulatedFields(streamClass.fields(),
+ (ObjectStreamField[]) null);
+ }
+
+ /**
+ * Return the actual EmulatedFields instance used by the receiver. We have
+ * the actual work in a separate class so that the code can be shared. The
+ * receiver has to be of a subclass of PutField.
+ *
+ * @return array of ObjectSlot the receiver represents.
+ */
+ EmulatedFields emulatedFields() {
+ return emulatedFields;
+ }
+
+ /**
+ * Find and set the byte value of a given field named <code>name</code> in
+ * the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, byte value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the char value of a given field named <code>name</code> in
+ * the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, char value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the double value of a given field named <code>name</code>
+ * in the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, double value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the float value of a given field named <code>name</code>
+ * in the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, float value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the int value of a given field named <code>name</code> in
+ * the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, int value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the long value of a given field named <code>name</code> in
+ * the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, long value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the Object value of a given field named <code>name</code>
+ * in the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, Object value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the short value of a given field named <code>name</code>
+ * in the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, short value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Find and set the boolean value of a given field named <code>name</code>
+ * in the receiver.
+ *
+ * @param name
+ * A String, the name of the field to set
+ * @param value
+ * New value for the field.
+ *
+ */
+ public void put(String name, boolean value) {
+ emulatedFields.put(name, value);
+ }
+
+ /**
+ * Write the field values to the specified ObjectOutput.
+ *
+ * @param output
+ * the ObjectOutput
+ *
+ * @throws IOException
+ * If an IO exception happened when writing the field values.
+ */
+ public void write(ObjectOutput output) throws IOException {
+ EmulatedFields.ObjectSlot[] slots = emulatedFields.slots();
+ for (int i = 0; i < slots.length; i++) {
+ EmulatedFields.ObjectSlot slot = slots[i];
+ Object fieldValue = slot.getFieldValue();
+ Class<?> type = slot.getField().getType();
+ // WARNING - default values exist for each primitive type
+ if (type == Integer.TYPE) {
+ output.writeInt(fieldValue != null ? ((Integer) fieldValue)
+ .intValue() : 0);
+ } else if (type == Byte.TYPE) {
+ output.writeByte(fieldValue != null ? ((Byte) fieldValue)
+ .byteValue() : (byte) 0);
+ } else if (type == Character.TYPE) {
+ output.writeChar(fieldValue != null ? ((Character) fieldValue)
+ .charValue() : (char) 0);
+ } else if (type == Short.TYPE) {
+ output.writeShort(fieldValue != null ? ((Short) fieldValue)
+ .shortValue() : (short) 0);
+ } else if (type == Boolean.TYPE) {
+ output.writeBoolean(fieldValue != null ? ((Boolean) fieldValue)
+ .booleanValue() : false);
+ } else if (type == Long.TYPE) {
+ output.writeLong(fieldValue != null ? ((Long) fieldValue)
+ .longValue() : (long) 0);
+ } else if (type == Float.TYPE) {
+ output.writeFloat(fieldValue != null ? ((Float) fieldValue)
+ .floatValue() : (float) 0);
+ } else if (type == Double.TYPE) {
+ output.writeDouble(fieldValue != null ? ((Double) fieldValue)
+ .doubleValue() : (double) 0);
+ } else {
+ // Either array or Object
+ output.writeObject(fieldValue);
+ }
+ }
+ }
+}
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForDumping.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForLoading.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForLoading.java?rev=432462&r1=432461&r2=432462&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForLoading.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForLoading.java Thu Aug 17 18:45:35 2006
@@ -1,288 +1,288 @@
-/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package java.io;
-
-
-/**
- * An EmulatedFieldsForLoading is an object that represents a set of emulated
- * fields for an object being loaded. It is a concrete implementation for
- * ObjectInputStream.GetField
- *
- * @see ObjectInputStream.GetField
- * @see EmulatedFieldsForDumping
- */
-class EmulatedFieldsForLoading extends ObjectInputStream.GetField {
- private ObjectStreamClass streamClass; // The class descriptor with the
- // declared fields the receiver
- // emulates
-
- private EmulatedFields emulatedFields; // The actual representation, with a
- // more powerful API (set&get)
-
- /**
- * Constructs a new instance of EmulatedFieldsForDumping.
- *
- * @param streamClass
- * an ObjectStreamClass, defining the class for which to emulate
- * fields.
- */
- EmulatedFieldsForLoading(ObjectStreamClass streamClass) {
- super();
- this.streamClass = streamClass;
- emulatedFields = new EmulatedFields(streamClass.getLoadFields(),
- streamClass.fields());
- }
-
- /**
- * Return a boolean indicating if the field named <code>name</code> has
- * been assigned a value explicitely (false) or if it still holds a default
- * value for the type (true) because it hasn't been assigned to yet.
- *
- * @param name
- * A String, the name of the field to test
- * @return <code>true</code> if the field holds it default value,
- * <code>false</code> otherwise.
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public boolean defaulted(String name) throws IOException,
- IllegalArgumentException {
- return emulatedFields.defaulted(name);
- }
-
- /**
- * Return the actual EmulatedFields instance used by the receiver. We have
- * the actual work in a separate class so that the code can be shared. The
- * receiver has to be of a subclass of GetField.
- *
- * @return array of ObjectSlot the receiver represents.
- */
- EmulatedFields emulatedFields() {
- return emulatedFields;
- }
-
- /**
- * Find and return the byte value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public byte get(String name, byte defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the char value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public char get(String name, char defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the double value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public double get(String name, double defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the float value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public float get(String name, float defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the int value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public int get(String name, int defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the long value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public long get(String name, long defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the Object value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public Object get(String name, Object defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the short value of a given field named <code>name</code>
- * in the receiver. If the field has not been assigned any value yet, the
- * default value <code>defaultValue</code> is returned instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public short get(String name, short defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Find and return the boolean value of a given field named
- * <code>name</code> in the receiver. If the field has not been assigned
- * any value yet, the default value <code>defaultValue</code> is returned
- * instead.
- *
- * @param name
- * A String, the name of the field to find
- * @param defaultValue
- * Return value in case the field has not been assigned to yet.
- * @return the value of the given field if it has been assigned, or the
- * default value otherwise
- *
- * @throws IOException
- * If an IO error occurs
- * @throws IllegalArgumentException
- * If the corresponding field can not be found.
- */
- public boolean get(String name, boolean defaultValue) throws IOException,
- IllegalArgumentException {
- return emulatedFields.get(name, defaultValue);
- }
-
- /**
- * Return the class descriptor for which the emulated fields are defined.
- *
- * @return ObjectStreamClass The class descriptor for which the emulated
- * fields are defined.
- */
- public ObjectStreamClass getObjectStreamClass() {
- return streamClass;
- }
-}
+/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.io;
+
+
+/**
+ * An EmulatedFieldsForLoading is an object that represents a set of emulated
+ * fields for an object being loaded. It is a concrete implementation for
+ * ObjectInputStream.GetField
+ *
+ * @see ObjectInputStream.GetField
+ * @see EmulatedFieldsForDumping
+ */
+class EmulatedFieldsForLoading extends ObjectInputStream.GetField {
+ private ObjectStreamClass streamClass; // The class descriptor with the
+ // declared fields the receiver
+ // emulates
+
+ private EmulatedFields emulatedFields; // The actual representation, with a
+ // more powerful API (set&get)
+
+ /**
+ * Constructs a new instance of EmulatedFieldsForDumping.
+ *
+ * @param streamClass
+ * an ObjectStreamClass, defining the class for which to emulate
+ * fields.
+ */
+ EmulatedFieldsForLoading(ObjectStreamClass streamClass) {
+ super();
+ this.streamClass = streamClass;
+ emulatedFields = new EmulatedFields(streamClass.getLoadFields(),
+ streamClass.fields());
+ }
+
+ /**
+ * Return a boolean indicating if the field named <code>name</code> has
+ * been assigned a value explicitely (false) or if it still holds a default
+ * value for the type (true) because it hasn't been assigned to yet.
+ *
+ * @param name
+ * A String, the name of the field to test
+ * @return <code>true</code> if the field holds it default value,
+ * <code>false</code> otherwise.
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public boolean defaulted(String name) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.defaulted(name);
+ }
+
+ /**
+ * Return the actual EmulatedFields instance used by the receiver. We have
+ * the actual work in a separate class so that the code can be shared. The
+ * receiver has to be of a subclass of GetField.
+ *
+ * @return array of ObjectSlot the receiver represents.
+ */
+ EmulatedFields emulatedFields() {
+ return emulatedFields;
+ }
+
+ /**
+ * Find and return the byte value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public byte get(String name, byte defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the char value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public char get(String name, char defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the double value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public double get(String name, double defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the float value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public float get(String name, float defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the int value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public int get(String name, int defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the long value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public long get(String name, long defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the Object value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public Object get(String name, Object defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the short value of a given field named <code>name</code>
+ * in the receiver. If the field has not been assigned any value yet, the
+ * default value <code>defaultValue</code> is returned instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public short get(String name, short defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Find and return the boolean value of a given field named
+ * <code>name</code> in the receiver. If the field has not been assigned
+ * any value yet, the default value <code>defaultValue</code> is returned
+ * instead.
+ *
+ * @param name
+ * A String, the name of the field to find
+ * @param defaultValue
+ * Return value in case the field has not been assigned to yet.
+ * @return the value of the given field if it has been assigned, or the
+ * default value otherwise
+ *
+ * @throws IOException
+ * If an IO error occurs
+ * @throws IllegalArgumentException
+ * If the corresponding field can not be found.
+ */
+ public boolean get(String name, boolean defaultValue) throws IOException,
+ IllegalArgumentException {
+ return emulatedFields.get(name, defaultValue);
+ }
+
+ /**
+ * Return the class descriptor for which the emulated fields are defined.
+ *
+ * @return ObjectStreamClass The class descriptor for which the emulated
+ * fields are defined.
+ */
+ public ObjectStreamClass getObjectStreamClass() {
+ return streamClass;
+ }
+}
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/EmulatedFieldsForLoading.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/Externalizable.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/Externalizable.java?rev=432462&r1=432461&r2=432462&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/Externalizable.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/Externalizable.java Thu Aug 17 18:45:35 2006
@@ -1,51 +1,51 @@
-/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package java.io;
-
-
-/**
- * Objects that want to be serialized/deserialized using
- * ObjectOutputStream/ObjectInputStream but defining their own byte
- * representation should implement this interface.
- *
- *
- */
-public interface Externalizable extends Serializable {
- /**
- * Reads the next object from the ObjectInput <code>input</code>
- *
- * @param input
- * the ObjectInput from which the next object is read
- *
- * @throws IOException
- * If an error occurs attempting to read from this ObjectInput.
- * @throws ClassNotFoundException
- * If the class of the instance being loaded cannot be found
- */
- public void readExternal(ObjectInput input) throws IOException,
- java.lang.ClassNotFoundException;
-
- /**
- * Writes the receiver to the ObjectOutput <code>output</code>.
- *
- * @param output
- * an ObjectOutput where to write the object
- *
- * @throws IOException
- * If an error occurs attempting to write to the ObjectOutput.
- */
- public void writeExternal(ObjectOutput output) throws IOException;
-}
+/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.io;
+
+
+/**
+ * Objects that want to be serialized/deserialized using
+ * ObjectOutputStream/ObjectInputStream but defining their own byte
+ * representation should implement this interface.
+ *
+ *
+ */
+public interface Externalizable extends Serializable {
+ /**
+ * Reads the next object from the ObjectInput <code>input</code>
+ *
+ * @param input
+ * the ObjectInput from which the next object is read
+ *
+ * @throws IOException
+ * If an error occurs attempting to read from this ObjectInput.
+ * @throws ClassNotFoundException
+ * If the class of the instance being loaded cannot be found
+ */
+ public void readExternal(ObjectInput input) throws IOException,
+ java.lang.ClassNotFoundException;
+
+ /**
+ * Writes the receiver to the ObjectOutput <code>output</code>.
+ *
+ * @param output
+ * an ObjectOutput where to write the object
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to the ObjectOutput.
+ */
+ public void writeExternal(ObjectOutput output) throws IOException;
+}
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/Externalizable.java
------------------------------------------------------------------------------
svn:eol-style = native