You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2006/05/19 08:00:56 UTC

svn commit: r407724 [11/11] - in /incubator/harmony/enhanced/classlib/trunk: make/ modules/rmi/make/ modules/rmi/src/main/java/java/rmi/ modules/rmi/src/main/java/java/rmi/registry/ modules/rmi/src/main/java/java/rmi/server/ modules/rmi/src/main/java/o...

Modified: incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/transport/jrmp/ServerProtocolHandler.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/transport/jrmp/ServerProtocolHandler.java?rev=407724&r1=407183&r2=407724&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/transport/jrmp/ServerProtocolHandler.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/transport/jrmp/ServerProtocolHandler.java Thu May 18 23:00:52 2006
@@ -1,159 +1,159 @@
-/* 
-*  Copyright 2005 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 ar.org.fitc.rmi.transport.jrmp;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.rmi.UnmarshalException;
-
-import ar.org.fitc.rmi.transport.EndpointID;
-import ar.org.fitc.rmi.transport.ProtocolException;
-
-/**
- * Implements the Server side management of the messages of the JRMP protocol.
- * 
- * @author Gustavo Petri
- */
-public final class ServerProtocolHandler {
-
-	/**
-	 * The client endpoint of the connection.
-	 */
-	private EndpointID clientEP;
-
-	/**
-	 * The local {@link java.io.InputStream} to interact with the client
-	 */
-	private DataInputStream in;
-
-	/**
-	 * The local {@link java.io.OutputStream} to interact with the client.
-	 */
-	private DataOutputStream out;
-
-	/**
-	 * The {@link ProtocolType} which identifies the type of the connection
-	 */
-	private ProtocolType protocolType;
-
-	/**
-	 * Constructs a new {@link ServerProtocolHandler}
-	 * 
-	 * @param in
-	 *            the {@link ar.org.fitc.rmi.transport.RMIObjectInputStream}
-	 * @param out
-	 *            the {@link ar.org.fitc.rmi.transport.RMIObjectInputStream}
-	 * @param clientEP
-	 *            the client {@link EndpointID}
-	 */
-	public ServerProtocolHandler(DataInputStream in, DataOutputStream out,
-			EndpointID clientEP) {
-
-		this.out = out;
-		this.in = in;
-		this.clientEP = (clientEP == null) ? new EndpointID() : clientEP;
-	}
-
-	/**
-	 * Writes the JRMP handshake answer to the client.
-	 * 
-	 * @throws ProtocolException
-	 *             if an exception occurs writing the hanshake data to the
-	 *             client.
-	 */
-	public final void answerHandshake() throws ProtocolException {
-
-		try {
-			if (protocolType == ProtocolType.STREAM) {
-				out.writeByte(HeaderResponse.PROTOCOL_ACK.getValue());
-				clientEP.write(out);
-			} else if (protocolType == ProtocolType.SINGLE_OP) {
-				out.writeByte(HeaderResponse.PROTOCOL_ACK.getValue());
-			} else {
-				out.writeByte(HeaderResponse.PROTOCOL_NOT_SUPPORTED.getValue());
-			}
-		} catch (IOException e) {
-			throw new ProtocolException("Error sending Protocol answer");
-		}
-	}
-
-	/**
-	 * Reads the default client's Endpoint used to accept calls.
-	 * 
-	 * @return an {@link ar.org.fitc.rmi.transport.EndpointID}
-	 */
-	public final EndpointID readEndpointNegotiation() {
-		EndpointID defaultEP = null;
-		try {
-			defaultEP = EndpointID.read(in);
-		} catch (IOException e) {
-			new ProtocolException("Exception reading EndpointID", e);
-		}
-		return defaultEP;
-	}
-
-	/**
-	 * Reads the initial handshake sequence sent by the client.
-	 * 
-	 * @param type
-	 *            a {@link ProtocolType} object indicating the protocol type
-	 * @throws ProtocolException
-	 *             if an exception occurs while reading the handshake data from
-	 *             the imput stream
-	 */
-	public final void readHandShake(ProtocolType type) throws ProtocolException {
-		Header header = new Header(type);
-		try {
-			header.readExternal(in);
-			protocolType = header.getProtocolType();
-		} catch (IOException e) {
-			throw new ProtocolException("I/O Error Reading Transport Header", e);
-		}
-	}
-
-	/**
-	 * Reads a {@link Message} object from the connection's input stream.
-	 * 
-	 * @return the {@link Message} object read.
-	 * @throws UnmarshalException
-	 *             if an exception occurs reading the input stream.
-	 */
-	public final Message readMessage() throws UnmarshalException {
-		Message msg = new Message();
-		try {
-			msg.readExternal(in);
-		} catch (IOException e) {
-			throw new UnmarshalException("IO error unmarshaling a message", e);
-		}
-		return msg;
-	}
-
-	/**
-	 * Writes a {@link MessageResponse#PING_ACK} into the ouput stream.
-	 * 
-	 * @throws ProtocolException
-	 *             if there is an error in the underlying protocol
-	 */
-	public final void writePingAck() throws ProtocolException {
-		try {
-			out.writeByte(MessageResponse.PING_ACK.getValue());
-		} catch (IOException e) {
-			throw new ProtocolException("I/O Error Marshaling a ProtocolAck", e);
-		}
-	}
-
-}
+/* 
+*  Copyright 2005 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 org.apache.harmony.rmi.internal.transport.jrmp;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.rmi.UnmarshalException;
+
+import org.apache.harmony.rmi.internal.transport.EndpointID;
+import org.apache.harmony.rmi.internal.transport.ProtocolException;
+
+/**
+ * Implements the Server side management of the messages of the JRMP protocol.
+ * 
+ * @author Gustavo Petri
+ */
+public final class ServerProtocolHandler {
+
+	/**
+	 * The client endpoint of the connection.
+	 */
+	private EndpointID clientEP;
+
+	/**
+	 * The local {@link java.io.InputStream} to interact with the client
+	 */
+	private DataInputStream in;
+
+	/**
+	 * The local {@link java.io.OutputStream} to interact with the client.
+	 */
+	private DataOutputStream out;
+
+	/**
+	 * The {@link ProtocolType} which identifies the type of the connection
+	 */
+	private ProtocolType protocolType;
+
+	/**
+	 * Constructs a new {@link ServerProtocolHandler}
+	 * 
+	 * @param in
+	 *            the {@link org.apache.harmony.rmi.internal.transport.RMIObjectInputStream}
+	 * @param out
+	 *            the {@link org.apache.harmony.rmi.internal.transport.RMIObjectInputStream}
+	 * @param clientEP
+	 *            the client {@link EndpointID}
+	 */
+	public ServerProtocolHandler(DataInputStream in, DataOutputStream out,
+			EndpointID clientEP) {
+
+		this.out = out;
+		this.in = in;
+		this.clientEP = (clientEP == null) ? new EndpointID() : clientEP;
+	}
+
+	/**
+	 * Writes the JRMP handshake answer to the client.
+	 * 
+	 * @throws ProtocolException
+	 *             if an exception occurs writing the hanshake data to the
+	 *             client.
+	 */
+	public final void answerHandshake() throws ProtocolException {
+
+		try {
+			if (protocolType == ProtocolType.STREAM) {
+				out.writeByte(HeaderResponse.PROTOCOL_ACK.getValue());
+				clientEP.write(out);
+			} else if (protocolType == ProtocolType.SINGLE_OP) {
+				out.writeByte(HeaderResponse.PROTOCOL_ACK.getValue());
+			} else {
+				out.writeByte(HeaderResponse.PROTOCOL_NOT_SUPPORTED.getValue());
+			}
+		} catch (IOException e) {
+			throw new ProtocolException("Error sending Protocol answer");
+		}
+	}
+
+	/**
+	 * Reads the default client's Endpoint used to accept calls.
+	 * 
+	 * @return an {@link org.apache.harmony.rmi.internal.transport.EndpointID}
+	 */
+	public final EndpointID readEndpointNegotiation() {
+		EndpointID defaultEP = null;
+		try {
+			defaultEP = EndpointID.read(in);
+		} catch (IOException e) {
+			new ProtocolException("Exception reading EndpointID", e);
+		}
+		return defaultEP;
+	}
+
+	/**
+	 * Reads the initial handshake sequence sent by the client.
+	 * 
+	 * @param type
+	 *            a {@link ProtocolType} object indicating the protocol type
+	 * @throws ProtocolException
+	 *             if an exception occurs while reading the handshake data from
+	 *             the imput stream
+	 */
+	public final void readHandShake(ProtocolType type) throws ProtocolException {
+		Header header = new Header(type);
+		try {
+			header.readExternal(in);
+			protocolType = header.getProtocolType();
+		} catch (IOException e) {
+			throw new ProtocolException("I/O Error Reading Transport Header", e);
+		}
+	}
+
+	/**
+	 * Reads a {@link Message} object from the connection's input stream.
+	 * 
+	 * @return the {@link Message} object read.
+	 * @throws UnmarshalException
+	 *             if an exception occurs reading the input stream.
+	 */
+	public final Message readMessage() throws UnmarshalException {
+		Message msg = new Message();
+		try {
+			msg.readExternal(in);
+		} catch (IOException e) {
+			throw new UnmarshalException("IO error unmarshaling a message", e);
+		}
+		return msg;
+	}
+
+	/**
+	 * Writes a {@link MessageResponse#PING_ACK} into the ouput stream.
+	 * 
+	 * @throws ProtocolException
+	 *             if there is an error in the underlying protocol
+	 */
+	public final void writePingAck() throws ProtocolException {
+		try {
+			out.writeByte(MessageResponse.PING_ACK.getValue());
+		} catch (IOException e) {
+			throw new ProtocolException("I/O Error Marshaling a ProtocolAck", e);
+		}
+	}
+
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/MethodHashGenerator.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/MethodHashGenerator.java?rev=407724&r1=407183&r2=407724&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/MethodHashGenerator.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/MethodHashGenerator.java Thu May 18 23:00:52 2006
@@ -1,190 +1,190 @@
-/* 
-*  Copyright 2005 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 ar.org.fitc.rmi.utils;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutput;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/*
- * NOTE: 
- * This class has been modified in order to support 
- * Java VM 1.4.2 using the javac's target jsr14 
- */
-
-/**
- * This class provides the methods that compute the hash for a specific method
- * 
- * @author Horacio de Oro
- */
-public final class MethodHashGenerator {
-    private static MessageDigest md;
-    
-    static {
-        try {
-            md = MessageDigest.getInstance("SHA1");
-        } catch (NoSuchAlgorithmException nsae) {
-            throw new InternalError("SHA1 not implemented: " + nsae);
-        }
-    }
-    
-    /**
-     * This method computes the hash of a specific method
-     * 
-     * @param method
-     *            to compute his hash
-     * @return the hash of the method
-     */
-    public final static long getMethodHash(final Method method) {
-
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        DataOutput dataOutput = new DataOutputStream(baos);
-
-        try {
-            dataOutput.writeUTF(getMethodDescriptor(method));
-        } catch (IOException ioe) {
-            throw new InternalError("IOException while using DataOutput: "
-                    + ioe);
-        }
-
-        byte[] bytes = baos.toByteArray();
-
-        byte[] digest = md.digest(bytes);
-
-        //
-        // 64-bit (long) integer computed from the
-        // first two 32-bit values of the message digest
-        //
-        // The 64-bit hash value is the little-endian composition of an eight
-        // byte sequence
-        // where the first four bytes are the first 32-bit value of the message
-        // digest in
-        // big-endian byte order and the last four bytes are the second 32-bit
-        // value of the
-        // message digest in big-endian byte order. For example, if the first
-        // two 32-bit
-        // values of the message digest are 0xB0B1B2B3 and 0xB4B5B6B7, then the
-        // hash value
-        // would be 0xB7B6B5B4B3B2B1B0.
-        //
-
-        byte[] hash = new byte[8];
-
-        hash[0] = digest[7];
-        hash[1] = digest[6];
-        hash[2] = digest[5];
-        hash[3] = digest[4];
-        hash[4] = digest[3];
-        hash[5] = digest[2];
-        hash[6] = digest[1];
-        hash[7] = digest[0];
-
-        return new BigInteger(hash).longValue();
-    }
-
-    /** Create the description of a method */
-    /**
-     * This method creates the description of a method
-     * 
-     * @param method
-     *            to create the descriptor
-     * @return a descriptor for the method
-     */
-    private final static String getMethodDescriptor(final Method method) {
-
-        StringBuffer sb = new StringBuffer();
-
-        sb.append(method.getName());
-        sb.append("(");
-
-        for (Class clazz : method.getParameterTypes())
-            sb.append(MethodHashGenerator.getFieldDescriptor(clazz));
-
-        sb.append(")");
-        sb.append(MethodHashGenerator
-                .getFieldDescriptor(method.getReturnType()));
-
-        return sb.toString();
-    }
-
-    /**
-     * This method returns the descriptor for the type represented by the class
-     * clazz
-     * 
-     * @param clazz
-     *            type to compute the descriptor
-     * @return the descriptor for the type represented by the class clazz
-     */
-    private final static String getFieldDescriptor(Class clazz) {
-
-        if (clazz == null) {
-            // TODO: what kind of
-            // exception should be
-            // thrown here?
-            throw new InternalError("clazz == null!"); 
-        }
-        
-        if (clazz.isArray()) {
-            return clazz.getName().replace('.', '/');
-        }
-
-        if (clazz.isPrimitive()) {
-
-            if (clazz.equals(Boolean.TYPE))
-                return "Z";
-
-            else if (clazz.equals(Character.TYPE))
-                return "C";
-
-            else if (clazz.equals(Byte.TYPE))
-                return "B";
-
-            else if (clazz.equals(Short.TYPE))
-                return "S";
-
-            else if (clazz.equals(Integer.TYPE))
-                return "I";
-
-            else if (clazz.equals(Long.TYPE))
-                return "J";
-
-            else if (clazz.equals(Float.TYPE))
-                return "F";
-
-            else if (clazz.equals(Double.TYPE))
-                return "D";
-
-            else if (clazz.equals(Void.TYPE))
-                return "V";
-
-            else
-                throw new InternalError("Unknown primitive type: " + clazz);
-
-        }
-
-        //
-        // clazz.isPrimitive() == false
-        //
-
-        return "L" + clazz.getName().replace('.', '/') + ";";
-
-    }
-}
+/* 
+*  Copyright 2005 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 org.apache.harmony.rmi.internal.utils;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutput;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/*
+ * NOTE: 
+ * This class has been modified in order to support 
+ * Java VM 1.4.2 using the javac's target jsr14 
+ */
+
+/**
+ * This class provides the methods that compute the hash for a specific method
+ * 
+ * @author Horacio de Oro
+ */
+public final class MethodHashGenerator {
+    private static MessageDigest md;
+    
+    static {
+        try {
+            md = MessageDigest.getInstance("SHA1");
+        } catch (NoSuchAlgorithmException nsae) {
+            throw new InternalError("SHA1 not implemented: " + nsae);
+        }
+    }
+    
+    /**
+     * This method computes the hash of a specific method
+     * 
+     * @param method
+     *            to compute his hash
+     * @return the hash of the method
+     */
+    public final static long getMethodHash(final Method method) {
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        DataOutput dataOutput = new DataOutputStream(baos);
+
+        try {
+            dataOutput.writeUTF(getMethodDescriptor(method));
+        } catch (IOException ioe) {
+            throw new InternalError("IOException while using DataOutput: "
+                    + ioe);
+        }
+
+        byte[] bytes = baos.toByteArray();
+
+        byte[] digest = md.digest(bytes);
+
+        //
+        // 64-bit (long) integer computed from the
+        // first two 32-bit values of the message digest
+        //
+        // The 64-bit hash value is the little-endian composition of an eight
+        // byte sequence
+        // where the first four bytes are the first 32-bit value of the message
+        // digest in
+        // big-endian byte order and the last four bytes are the second 32-bit
+        // value of the
+        // message digest in big-endian byte order. For example, if the first
+        // two 32-bit
+        // values of the message digest are 0xB0B1B2B3 and 0xB4B5B6B7, then the
+        // hash value
+        // would be 0xB7B6B5B4B3B2B1B0.
+        //
+
+        byte[] hash = new byte[8];
+
+        hash[0] = digest[7];
+        hash[1] = digest[6];
+        hash[2] = digest[5];
+        hash[3] = digest[4];
+        hash[4] = digest[3];
+        hash[5] = digest[2];
+        hash[6] = digest[1];
+        hash[7] = digest[0];
+
+        return new BigInteger(hash).longValue();
+    }
+
+    /** Create the description of a method */
+    /**
+     * This method creates the description of a method
+     * 
+     * @param method
+     *            to create the descriptor
+     * @return a descriptor for the method
+     */
+    private final static String getMethodDescriptor(final Method method) {
+
+        StringBuffer sb = new StringBuffer();
+
+        sb.append(method.getName());
+        sb.append("(");
+
+        for (Class clazz : method.getParameterTypes())
+            sb.append(MethodHashGenerator.getFieldDescriptor(clazz));
+
+        sb.append(")");
+        sb.append(MethodHashGenerator
+                .getFieldDescriptor(method.getReturnType()));
+
+        return sb.toString();
+    }
+
+    /**
+     * This method returns the descriptor for the type represented by the class
+     * clazz
+     * 
+     * @param clazz
+     *            type to compute the descriptor
+     * @return the descriptor for the type represented by the class clazz
+     */
+    private final static String getFieldDescriptor(Class clazz) {
+
+        if (clazz == null) {
+            // TODO: what kind of
+            // exception should be
+            // thrown here?
+            throw new InternalError("clazz == null!"); 
+        }
+        
+        if (clazz.isArray()) {
+            return clazz.getName().replace('.', '/');
+        }
+
+        if (clazz.isPrimitive()) {
+
+            if (clazz.equals(Boolean.TYPE))
+                return "Z";
+
+            else if (clazz.equals(Character.TYPE))
+                return "C";
+
+            else if (clazz.equals(Byte.TYPE))
+                return "B";
+
+            else if (clazz.equals(Short.TYPE))
+                return "S";
+
+            else if (clazz.equals(Integer.TYPE))
+                return "I";
+
+            else if (clazz.equals(Long.TYPE))
+                return "J";
+
+            else if (clazz.equals(Float.TYPE))
+                return "F";
+
+            else if (clazz.equals(Double.TYPE))
+                return "D";
+
+            else if (clazz.equals(Void.TYPE))
+                return "V";
+
+            else
+                throw new InternalError("Unknown primitive type: " + clazz);
+
+        }
+
+        //
+        // clazz.isPrimitive() == false
+        //
+
+        return "L" + clazz.getName().replace('.', '/') + ";";
+
+    }
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/Pair.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/Pair.java?rev=407724&r1=407183&r2=407724&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/Pair.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/Pair.java Thu May 18 23:00:52 2006
@@ -1,85 +1,85 @@
-/* 
-*  Copyright 2005 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 ar.org.fitc.rmi.utils;
-
-/**
- * This class implements a generic pair.
- * 
- * @author Gustavo Petri
- */
-public final class Pair<E, T> {
-    private E comp1;
-
-    private T comp2;
-
-    /**
-     * @param comp1
-     *            first component
-     * @param comp2
-     *            second component
-     */
-    public Pair(E comp1, T comp2) {
-        this.comp1 = comp1;
-        this.comp2 = comp2;
-    }
-
-    /**
-     * @return the first component of pair
-     */
-    public final E getFirst() {
-        return comp1;
-    }
-
-    /**
-     * @return the second component of pair
-     */
-    public final T getSecond() {
-        return comp2;
-    }
-
-    /**
-     * @param o
-     *            the object that will be compared for equality.
-     * @return <code>true</code> if <code>obj</code> is instance of the
-     *         class <code>Pair</code>, else return <code>false</code>
-     */
-    public final boolean equals(Object o) {
-
-        if (o == null)
-            return false;
-        if (o == this)
-            return true;
-        if (!(o instanceof Pair))
-            return false;
-        Pair oPair = (Pair) o;
-        return (this.comp1.equals(oPair.comp1) && this.comp2
-                .equals(oPair.comp2));
-    }
-
-    /**
-     * @return the hash code for this object.
-     */
-    public final int hashCode() {
-        return this.comp1.hashCode() ^ this.comp2.hashCode();
-    }
-
-    /**
-     * @return a description of the contained of an object of this class
-     */
-    public final String toString() {
-        return "Pair " + this.comp1.toString() + ", " + this.comp2.toString();
-    }
-}
+/* 
+*  Copyright 2005 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 org.apache.harmony.rmi.internal.utils;
+
+/**
+ * This class implements a generic pair.
+ * 
+ * @author Gustavo Petri
+ */
+public final class Pair<E, T> {
+    private E comp1;
+
+    private T comp2;
+
+    /**
+     * @param comp1
+     *            first component
+     * @param comp2
+     *            second component
+     */
+    public Pair(E comp1, T comp2) {
+        this.comp1 = comp1;
+        this.comp2 = comp2;
+    }
+
+    /**
+     * @return the first component of pair
+     */
+    public final E getFirst() {
+        return comp1;
+    }
+
+    /**
+     * @return the second component of pair
+     */
+    public final T getSecond() {
+        return comp2;
+    }
+
+    /**
+     * @param o
+     *            the object that will be compared for equality.
+     * @return <code>true</code> if <code>obj</code> is instance of the
+     *         class <code>Pair</code>, else return <code>false</code>
+     */
+    public final boolean equals(Object o) {
+
+        if (o == null)
+            return false;
+        if (o == this)
+            return true;
+        if (!(o instanceof Pair))
+            return false;
+        Pair oPair = (Pair) o;
+        return (this.comp1.equals(oPair.comp1) && this.comp2
+                .equals(oPair.comp2));
+    }
+
+    /**
+     * @return the hash code for this object.
+     */
+    public final int hashCode() {
+        return this.comp1.hashCode() ^ this.comp2.hashCode();
+    }
+
+    /**
+     * @return a description of the contained of an object of this class
+     */
+    public final String toString() {
+        return "Pair " + this.comp1.toString() + ", " + this.comp2.toString();
+    }
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PrintStreamHandler.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PrintStreamHandler.java?rev=407724&r1=407183&r2=407724&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PrintStreamHandler.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PrintStreamHandler.java Thu May 18 23:00:52 2006
@@ -1,87 +1,87 @@
-/* 
-*  Copyright 2005 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 ar.org.fitc.rmi.utils;
-
-import java.io.PrintStream;
-import java.util.logging.LogRecord;
-import java.util.logging.StreamHandler;
-
-/**
- * This handler publishes log records into a <code>PrintStream</code>.
- * 
- * @author Gonzalo Ortega
- */
-public final class PrintStreamHandler extends StreamHandler {
-
-    private PrintStream out;
-
-    /**
-     * Creates a new <code>PrintStreamHandler</code>, with
-     * <code>System.err</code> as destiny for the log records.
-     */
-    public PrintStreamHandler() {
-        out = System.err;
-        super.setOutputStream(out);
-    }
-
-    /**
-     * Creates a new <code>PrintStreamHandler<code>, with <code>out</code> 
-     * as destiny for the log records. 
-     *
-     * @param out The <code>PrintStream</code> where the messages will be logged to
-     */
-    public PrintStreamHandler(PrintStream out) {
-        if (out != null) {
-            super.setOutputStream(out);
-        }
-        this.out = out;
-    }
-
-    /**
-     * @param record
-     *            The log record to be published
-     */
-    @Override
-    public final void publish(LogRecord record) {
-        if ((out != null) && isLoggable(record)) {
-            out.println(getFormatter().format(record));
-            out.flush();
-        }
-    }
-
-    /**
-     * @param out
-     *            The <code>PrintStream</code> where the messages will be
-     *            logged, or <code>null</code> if no logging is desired.
-     */
-    public void setOutputPrintStream(PrintStream out) {
-        this.out = out;
-    }
-
-    /**
-     * 
-     */
-    @Override
-    public final void close() {
-        if (out != null) {
-            super.close();
-            if (out != System.err) {
-                out.close();
-            }
-        }
-    }
-
-}
+/* 
+*  Copyright 2005 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 org.apache.harmony.rmi.internal.utils;
+
+import java.io.PrintStream;
+import java.util.logging.LogRecord;
+import java.util.logging.StreamHandler;
+
+/**
+ * This handler publishes log records into a <code>PrintStream</code>.
+ * 
+ * @author Gonzalo Ortega
+ */
+public final class PrintStreamHandler extends StreamHandler {
+
+    private PrintStream out;
+
+    /**
+     * Creates a new <code>PrintStreamHandler</code>, with
+     * <code>System.err</code> as destiny for the log records.
+     */
+    public PrintStreamHandler() {
+        out = System.err;
+        super.setOutputStream(out);
+    }
+
+    /**
+     * Creates a new <code>PrintStreamHandler<code>, with <code>out</code> 
+     * as destiny for the log records. 
+     *
+     * @param out The <code>PrintStream</code> where the messages will be logged to
+     */
+    public PrintStreamHandler(PrintStream out) {
+        if (out != null) {
+            super.setOutputStream(out);
+        }
+        this.out = out;
+    }
+
+    /**
+     * @param record
+     *            The log record to be published
+     */
+    @Override
+    public final void publish(LogRecord record) {
+        if ((out != null) && isLoggable(record)) {
+            out.println(getFormatter().format(record));
+            out.flush();
+        }
+    }
+
+    /**
+     * @param out
+     *            The <code>PrintStream</code> where the messages will be
+     *            logged, or <code>null</code> if no logging is desired.
+     */
+    public void setOutputPrintStream(PrintStream out) {
+        this.out = out;
+    }
+
+    /**
+     * 
+     */
+    @Override
+    public final void close() {
+        if (out != null) {
+            super.close();
+            if (out != System.err) {
+                out.close();
+            }
+        }
+    }
+
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PropertiesReader.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PropertiesReader.java?rev=407724&r1=407183&r2=407724&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PropertiesReader.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/PropertiesReader.java Thu May 18 23:00:52 2006
@@ -1,77 +1,77 @@
-/* 
-*  Copyright 2005 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 ar.org.fitc.rmi.utils;
-
-/*
- * NOTE: 
- * This class has been modified in order to support 
- * Java VM 1.4.2 using the javac's target jsr14 
- */
-
-public final class PropertiesReader {
-
-    /** To prevent instantiation */
-    private PropertiesReader() {}
-    
-    public final static int readInt(String name, int defaultValue) {
-        int ret;
-        try {
-            ret = Integer.parseInt(System.getProperty(name));
-            if (ret < 0) {
-                // TODO LOG HERE
-                ret = defaultValue;
-            }
-        } catch (NumberFormatException e) {
-            // TODO LOG HERE
-            ret = defaultValue;
-        }
-        return ret;
-    }
-
-    public final static long readLong(String name, long defaultValue) {
-        long ret;
-        try {
-            ret = new Long(System.getProperty(name));
-            if (ret < 0) {
-                // TODO LOG HERE
-                ret = defaultValue;
-            }
-        } catch (NumberFormatException e) {
-            // TODO LOG HERE
-            ret = defaultValue;
-        }
-        return ret;    
-    }
-    
-    public final static boolean readBoolean(String name, boolean defaultValue) {
-        boolean ret;
-        try {
-            ret = Boolean.valueOf(System.getProperty(name));
-        } catch (Exception e) {   // TODO: exception name
-            // TODO LOG HERE
-            ret = defaultValue;
-        }
-        return ret;
-    }
-    
-    public final static String readString (String name) {
-        String ret = System.getProperty(name);
-        if (ret == null) {
-            // TODO LOG HERE
-        }
-        return ret; 
-    }
-}
+/* 
+*  Copyright 2005 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 org.apache.harmony.rmi.internal.utils;
+
+/*
+ * NOTE: 
+ * This class has been modified in order to support 
+ * Java VM 1.4.2 using the javac's target jsr14 
+ */
+
+public final class PropertiesReader {
+
+    /** To prevent instantiation */
+    private PropertiesReader() {}
+    
+    public final static int readInt(String name, int defaultValue) {
+        int ret;
+        try {
+            ret = Integer.parseInt(System.getProperty(name));
+            if (ret < 0) {
+                // TODO LOG HERE
+                ret = defaultValue;
+            }
+        } catch (NumberFormatException e) {
+            // TODO LOG HERE
+            ret = defaultValue;
+        }
+        return ret;
+    }
+
+    public final static long readLong(String name, long defaultValue) {
+        long ret;
+        try {
+            ret = new Long(System.getProperty(name));
+            if (ret < 0) {
+                // TODO LOG HERE
+                ret = defaultValue;
+            }
+        } catch (NumberFormatException e) {
+            // TODO LOG HERE
+            ret = defaultValue;
+        }
+        return ret;    
+    }
+    
+    public final static boolean readBoolean(String name, boolean defaultValue) {
+        boolean ret;
+        try {
+            ret = Boolean.valueOf(System.getProperty(name));
+        } catch (Exception e) {   // TODO: exception name
+            // TODO LOG HERE
+            ret = defaultValue;
+        }
+        return ret;
+    }
+    
+    public final static String readString (String name) {
+        String ret = System.getProperty(name);
+        if (ret == null) {
+            // TODO LOG HERE
+        }
+        return ret; 
+    }
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/RemoteUtils.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/RemoteUtils.java?rev=407724&r1=407183&r2=407724&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/RemoteUtils.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/RemoteUtils.java Thu May 18 23:00:52 2006
@@ -1,122 +1,122 @@
-/* 
-*  Copyright 2005 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 ar.org.fitc.rmi.utils;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-/**
- * A Collection of utility methods used to get the Remote interfaces and
- * methods from a Class.
- * 
- * @author Gonzalo Ortega
- */
-public final class RemoteUtils {
-	
-	/**
-	 * Map used to cache the remote interfaces of a class, saving time when
-	 * exporting multiple instances of the same class. 
-	 */
-	static Map<Class, Set<Class>> remoteInterfacesCache;
-
-	static {
-		remoteInterfacesCache = Collections.synchronizedMap(new WeakHashMap<Class, Set<Class>>());
-	}
-	
-    /**
-     * Returns a set containing all the remote interfaces implemented by a class
-     * 
-     * @param inspect
-     *            the class that implements the remote interfaces
-     * @return A <code>Set</code> containing all the remote interfaces
-     *         implemented by a class
-     */
-    public final static Set<Class> getRemoteInterfaces(Class inspect) {
-    	if (remoteInterfacesCache.containsKey(inspect)) {
-    		return remoteInterfacesCache.get(inspect);
-    	}
-        LinkedHashSet<Class> classSet = new LinkedHashSet<Class>();
-        Class clazz = inspect;
-        do {
-            getRemoteInterfacesAux(clazz, classSet);
-        } while ((clazz = clazz.getSuperclass()) != null);
-        remoteInterfacesCache.put(inspect, classSet);
-        return classSet;
-    }
-
-    /**
-     * Auxiliary method needed for <code>getRemoteInterfaces</code>
-     * 
-     * @param inspect
-     *            The class or intarface that implements or extends the remote
-     *            interface
-     * @param classSet
-     *            A <code>Set</code> where the found remote intrefaces are
-     *            stored
-     * @return <code>true</code> if the received intarface is
-     *         <code>Remote</code>
-     */
-    private final static boolean getRemoteInterfacesAux(Class inspect,
-            Set<Class> classSet) {
-        boolean isRemote = false;
-
-        Class[] allInterfaces = inspect.getInterfaces();
-        for (int x = 0; x < allInterfaces.length; x++) {
-            isRemote = isRemote
-                    | getRemoteInterfacesAux(allInterfaces[x], classSet);
-        }
-        if (inspect.equals(java.rmi.Remote.class)) {
-            isRemote = true;
-        }
-        if (isRemote && inspect.isInterface()) {
-            classSet.add(inspect);
-        }
-        return isRemote;
-    }
-
-    /**
-     * Returns a set containing all the remote methods declared by all the
-     * remote interfaces implemented by a class.
-     * 
-     * @param inspect
-     *            the class that implements the remote interfaces
-     * @return A <code>Set</code> containing all the remote methods of the
-     *         class
-     */
-    public final static Set<Method> getRemoteMethods(Class inspect) {
-        Set<Class> classSet = getRemoteInterfaces(inspect);
-        LinkedHashSet<Method> methods = new LinkedHashSet<Method>();
-
-        for (Class interfaz : classSet) {
-            Method[] methodArray = interfaz.getDeclaredMethods();
-            for (int y = 0; y < methodArray.length; y++) {
-                Class[] exceptions = methodArray[y].getExceptionTypes();
-                for (Class clazz : exceptions) {
-                    if (clazz.equals(java.rmi.RemoteException.class)
-                            || clazz.equals(java.io.IOException.class)
-                            || clazz.equals(java.lang.Exception.class)) {
-                        methods.add(methodArray[y]);
-                    }
-                }
-            }
-        }
-        return methods;
-    }
-}
+/* 
+*  Copyright 2005 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 org.apache.harmony.rmi.internal.utils;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.WeakHashMap;
+
+/**
+ * A Collection of utility methods used to get the Remote interfaces and
+ * methods from a Class.
+ * 
+ * @author Gonzalo Ortega
+ */
+public final class RemoteUtils {
+	
+	/**
+	 * Map used to cache the remote interfaces of a class, saving time when
+	 * exporting multiple instances of the same class. 
+	 */
+	static Map<Class, Set<Class>> remoteInterfacesCache;
+
+	static {
+		remoteInterfacesCache = Collections.synchronizedMap(new WeakHashMap<Class, Set<Class>>());
+	}
+	
+    /**
+     * Returns a set containing all the remote interfaces implemented by a class
+     * 
+     * @param inspect
+     *            the class that implements the remote interfaces
+     * @return A <code>Set</code> containing all the remote interfaces
+     *         implemented by a class
+     */
+    public final static Set<Class> getRemoteInterfaces(Class inspect) {
+    	if (remoteInterfacesCache.containsKey(inspect)) {
+    		return remoteInterfacesCache.get(inspect);
+    	}
+        LinkedHashSet<Class> classSet = new LinkedHashSet<Class>();
+        Class clazz = inspect;
+        do {
+            getRemoteInterfacesAux(clazz, classSet);
+        } while ((clazz = clazz.getSuperclass()) != null);
+        remoteInterfacesCache.put(inspect, classSet);
+        return classSet;
+    }
+
+    /**
+     * Auxiliary method needed for <code>getRemoteInterfaces</code>
+     * 
+     * @param inspect
+     *            The class or intarface that implements or extends the remote
+     *            interface
+     * @param classSet
+     *            A <code>Set</code> where the found remote intrefaces are
+     *            stored
+     * @return <code>true</code> if the received intarface is
+     *         <code>Remote</code>
+     */
+    private final static boolean getRemoteInterfacesAux(Class inspect,
+            Set<Class> classSet) {
+        boolean isRemote = false;
+
+        Class[] allInterfaces = inspect.getInterfaces();
+        for (int x = 0; x < allInterfaces.length; x++) {
+            isRemote = isRemote
+                    | getRemoteInterfacesAux(allInterfaces[x], classSet);
+        }
+        if (inspect.equals(java.rmi.Remote.class)) {
+            isRemote = true;
+        }
+        if (isRemote && inspect.isInterface()) {
+            classSet.add(inspect);
+        }
+        return isRemote;
+    }
+
+    /**
+     * Returns a set containing all the remote methods declared by all the
+     * remote interfaces implemented by a class.
+     * 
+     * @param inspect
+     *            the class that implements the remote interfaces
+     * @return A <code>Set</code> containing all the remote methods of the
+     *         class
+     */
+    public final static Set<Method> getRemoteMethods(Class inspect) {
+        Set<Class> classSet = getRemoteInterfaces(inspect);
+        LinkedHashSet<Method> methods = new LinkedHashSet<Method>();
+
+        for (Class interfaz : classSet) {
+            Method[] methodArray = interfaz.getDeclaredMethods();
+            for (int y = 0; y < methodArray.length; y++) {
+                Class[] exceptions = methodArray[y].getExceptionTypes();
+                for (Class clazz : exceptions) {
+                    if (clazz.equals(java.rmi.RemoteException.class)
+                            || clazz.equals(java.io.IOException.class)
+                            || clazz.equals(java.lang.Exception.class)) {
+                        methods.add(methodArray[y]);
+                    }
+                }
+            }
+        }
+        return methods;
+    }
+}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/ReversibleHashSet.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/ReversibleHashSet.java?rev=407724&r1=407183&r2=407724&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/ReversibleHashSet.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/rmi/src/main/java/org/apache/harmony/rmi/internal/utils/ReversibleHashSet.java Thu May 18 23:00:52 2006
@@ -1,121 +1,121 @@
-/* 
-*  Copyright 2005 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 ar.org.fitc.rmi.utils;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * 
- * This class constructs a generic structure by which is possible to relate one
- * element "A1" with a list of elements "L11, L12, ..., L1n". This structure
- * also maintains a list of these relationships "A1, A2, …, Am" with the
- * corresponding series "L11, L12, ..., L1n, ...", "L21, L22, ..., L2n", ...,
- * "Lm1, Lm2, ..., Lmn". Thus, if an element "Ai" is known, this class provides
- * a method that returns a corresponding list of elements "Li". On the other
- * hand, if an element "Lij" of the list is known, this class provides a method
- * that return the element "Ai" which contains "Lij".
- * 
- * @author Gustavo Petri
- */
-
-public final class ReversibleHashSet<E, T> {
-
-    private HashMap<E, Set<T>> oneToMany;
-
-    private HashMap<T, E> oneToOne;
-
-    /**
-     * Constructor of the class
-     */
-    public ReversibleHashSet() {
-        this.oneToMany = new HashMap<E, Set<T>>();
-        this.oneToOne = new HashMap<T, E>();
-    }
-
-    /**
-     * This method inserts a value
-     * 
-     * @param key
-     *            the value of the series's identifier
-     * @param value
-     *            of the an element of the series
-     */
-    public final void insert(E key, T value) {
-
-        if (oneToMany.get(key) != null) {
-            oneToMany.get(key).add(value);
-        } else {
-            HashSet<T> newHashSet = new HashSet<T>();
-            newHashSet.add(value);
-            oneToMany.put(key, newHashSet);
-        }
-        oneToOne.put(value, key);
-
-        return;
-    }
-
-    /**
-     * This method returns a list of the elements of the series
-     * 
-     * @param key
-     *            the value of the series's identifier
-     * @return a list of the elements of the series
-     */
-    public final Set<T> getValues(E key) {
-        return oneToMany.get(key);
-    }
-
-    /**
-     * This method returns the value of the series's identifier
-     * 
-     * @param value
-     *            of the an element of the series
-     * @return the key of the series, the value of the series's identifier
-     */
-    public final E getKeyFromValue(T value) {
-        return oneToOne.get(value);
-    }
-
-    /**
-     * This method validate if exists an element in the series
-     * 
-     * @param key
-     *            the value of the series's identifier
-     * @return <code>true</code> if exists an element in the list, else
-     *         <code>false</code>
-     */
-    public final  boolean hasValues(E key) {
-        return !(oneToMany.get(key) == null);
-    }
-
-    /**
-     * This method remove a value of the series
-     * 
-     * @param value
-     *            of the an element of the series
-     */
-    public final void removeValue(T value) {
-        E key = oneToOne.get(value);
-        if (key != null) {
-            oneToMany.get(key).remove(value);
-            oneToOne.remove(value);
-            if (oneToMany.get(key).isEmpty())
-                oneToMany.remove(key);
-        }
-    }
-}
+/* 
+*  Copyright 2005 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 org.apache.harmony.rmi.internal.utils;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 
+ * This class constructs a generic structure by which is possible to relate one
+ * element "A1" with a list of elements "L11, L12, ..., L1n". This structure
+ * also maintains a list of these relationships "A1, A2, …, Am" with the
+ * corresponding series "L11, L12, ..., L1n, ...", "L21, L22, ..., L2n", ...,
+ * "Lm1, Lm2, ..., Lmn". Thus, if an element "Ai" is known, this class provides
+ * a method that returns a corresponding list of elements "Li". On the other
+ * hand, if an element "Lij" of the list is known, this class provides a method
+ * that return the element "Ai" which contains "Lij".
+ * 
+ * @author Gustavo Petri
+ */
+
+public final class ReversibleHashSet<E, T> {
+
+    private HashMap<E, Set<T>> oneToMany;
+
+    private HashMap<T, E> oneToOne;
+
+    /**
+     * Constructor of the class
+     */
+    public ReversibleHashSet() {
+        this.oneToMany = new HashMap<E, Set<T>>();
+        this.oneToOne = new HashMap<T, E>();
+    }
+
+    /**
+     * This method inserts a value
+     * 
+     * @param key
+     *            the value of the series's identifier
+     * @param value
+     *            of the an element of the series
+     */
+    public final void insert(E key, T value) {
+
+        if (oneToMany.get(key) != null) {
+            oneToMany.get(key).add(value);
+        } else {
+            HashSet<T> newHashSet = new HashSet<T>();
+            newHashSet.add(value);
+            oneToMany.put(key, newHashSet);
+        }
+        oneToOne.put(value, key);
+
+        return;
+    }
+
+    /**
+     * This method returns a list of the elements of the series
+     * 
+     * @param key
+     *            the value of the series's identifier
+     * @return a list of the elements of the series
+     */
+    public final Set<T> getValues(E key) {
+        return oneToMany.get(key);
+    }
+
+    /**
+     * This method returns the value of the series's identifier
+     * 
+     * @param value
+     *            of the an element of the series
+     * @return the key of the series, the value of the series's identifier
+     */
+    public final E getKeyFromValue(T value) {
+        return oneToOne.get(value);
+    }
+
+    /**
+     * This method validate if exists an element in the series
+     * 
+     * @param key
+     *            the value of the series's identifier
+     * @return <code>true</code> if exists an element in the list, else
+     *         <code>false</code>
+     */
+    public final  boolean hasValues(E key) {
+        return !(oneToMany.get(key) == null);
+    }
+
+    /**
+     * This method remove a value of the series
+     * 
+     * @param value
+     *            of the an element of the series
+     */
+    public final void removeValue(T value) {
+        E key = oneToOne.get(value);
+        if (key != null) {
+            oneToMany.get(key).remove(value);
+            oneToOne.remove(value);
+            if (oneToMany.get(key).isEmpty())
+                oneToMany.remove(key);
+        }
+    }
+}