Makefile.in: Rebuilt.
2001-10-24 Tom Tromey <tromey@redhat.com> Warren Levy <warrenl@redhat.com> * Makefile.in: Rebuilt. * Makefile.am (javax_source_files): New macro. (ordinary_java_source_files): Added javax_source_files. (libgcj.jar): Search javax for class files. * javax/naming/LinkException.java (toString): Wrote. (toString(boolean)): Likewise. * javax/naming/ldap/InitialLdapContext.java: New file. * javax/naming/directory/InitialDirContext.java: Wrote. * javax/naming/spi/NamingManager.java (getPlusPath): Now has package-private protection. (getURLContext): Likewise. (NamingManager): Likewise. * javax/naming/spi/DirectoryManager.java: New file. * javax/naming/directory/BasicAttributes.java: New file. * javax/naming/directory/BasicAttribute.java: New file. * javax/naming/spi/ResolveResult.java (ResolveResult(Object,String)): Wrote. (appendRemainingName): Uncommented body. (appendRemainingComponent): Likewise. * javax/naming/ldap/ControlFactory.java: New file. * javax/naming/directory/AttributeModificationException.java (toString): Wrote. * javax/naming/spi/NamingManager.java (NamingManager): New constructor. (setInitialContextFactoryBuilder): Wrote. (getInitialContext): Look in system properties for class name as well. Use Class.forName(). (getURLContext): Wrote. (ofb): New field. (setObjectFactoryBuilder): Wrote. (getObjectInstance): Wrote. (getContinuationContext): Wrote. (getPlusPath): New private method. (getStateToBind): Wrote. * javax/naming/CannotProceedException.java: Added missing methods & fields. * javax/naming/LinkException.java: Added missing methods & fields. * javax/naming/ReferralException.java (ReferralException): Made constructor protected per spec. Added missing abstract methods. * javax/naming/directory/Attribute.java: Updated copyright. * javax/naming/directory/AttributeModificationException.java: Ditto. * javax/naming/directory/Attributes.java: Ditto. * javax/naming/directory/DirContext.java: Ditto. * javax/naming/spi/NamingManager.java: Ditto. * javax/naming/spi/ResolveResult.java: Added comment. * javax/naming/directory/Attribute.java: Added missing interface methods. * javax/naming/directory/AttributeModificationException.java: Added missing methods & fields. * javax/naming/directory/directory/Attributes.java: Added missing interface methods. * javax/naming/directory/SearchControls.java: Maded serialized fields private. * javax/naming/event/NamingEvent.java: Added comment. * javax/naming/event/NamingExceptionEvent.java: Maded serialized field private. * javax/naming/ldap/UnsolicitedNotificationEvent.java: Maded serialized field private. * javax/naming/spi/NamingManager.java: Added missing field and stubbed missing methods. * javax/naming/directory/DirContext.java: Added missing interface fields & methods. * javax/naming/directory/InitialDirContext.java: Stubbed missing methods. * javax/naming/directory/ModificationItem.java: New class. * javax/naming/directory/SearchResult.java: New class. * javax/naming/directory/SearchControls.java: New class. * javax/naming/event/EventContext.java: New class. * javax/naming/event/EventDirContext.java: New class. * javax/naming/event/NamespaceChangeListener.java: New class. * javax/naming/event/NamingEvent.java: New class. * javax/naming/event/NamingExceptionEvent.java: New class. * javax/naming/event/NamingListener.java: New class. * javax/naming/event/ObjectChangeListener.java: New class. * javax/naming/ldap/Control.java: New class. * javax/naming/ldap/ExtendedRequest.java: New class. * javax/naming/ldap/ExtendedResponse.java: New class. * javax/naming/ldap/HasControls.java: New class. * javax/naming/ldap/LdapContext.java: New class. * javax/naming/ldap/LdapReferralException.java: New class. * javax/naming/ldap/UnsolicitedNotification.java: New class. * javax/naming/ldap/UnsolicitedNotificationEvent.java: New class. * javax/naming/ldap/UnsolicitedNotificationListener.java: New class. * javax/naming/spi/DirObjectFactory.java: New class. * javax/naming/spi/DirStateFactory.java: New class. * javax/naming/spi/ObjectFactoryBuilder.java: New class. * javax/naming/spi/ResolveResult.java: New class. * javax/naming/spi/Resolver.java: New class. * javax/naming/spi/StateFactory.java: New class. * javax/naming/spi/ObjectFactory.java: Made an interface per spec. * java/rmi/RemoteException.java: New class. * javax/transaction/HeuristicCommitException.java: New class. * javax/transaction/HeuristicMixedException.java: New class. * javax/transaction/HeuristicRollbackException.java: New class. * javax/transaction/NotSupportedException.java: New class. * javax/transaction/RollbackException.java: New class. * javax/transaction/Status.java: New class. * javax/transaction/Synchronization.java: New class. * javax/transaction/SystemException.java: New class. * javax/transaction/Transaction.java: New class. * javax/transaction/TransactionManager.java: New class. * javax/transaction/UserTransaction.java: New class. * javax/transaction/xa/XAException.java: Added public static fields. * javax/transaction/xa/XAResource.java: New class. * javax/transaction/xa/Xid.java: New class. * javax/naming/CompoundName.java (CompoundName(String)): Reverse elements if required. Handle case where quote is at end of string. * javax/naming/CompoundName.java (CompoundName(String)): Handle text left at end of parsing. (toString): Handle empty element at beginning. * javax/naming/CompositeName.java (toString): Handle empty element at beginning. (CompositeName(String)): Handle text left at end of parsing. Correctly compute boundary condition for quoting. * javax/naming/CompoundName.java: New file. * javax/naming/CompositeName.java: New file. * javax/naming/Binding.java: New file. * javax/naming/LinkRef.java: New file. * javax/naming/NameClassPair.java: New file. * javax/naming/Reference.java (addrs, classFactory, classFactoryLocation): New fields. (className): Now protected. (Reference): New constructors. (add): Now public. Implemented. (get(String)): Likewise. (add(int,RefAddr)): New method. (clear): Likewise. (clone): Likewise. (equals): Likewise. (get(int)): Likewise. (getAll): Likewise. (getFactoryClassLocation): Likewise. (getFactoryClassName): Likewise. (hashCode): Likewise. (remove): Likewise. (size): Likewise. (toString): Likewise. * javax/transaction/xa/XAException.java: New file. * javax/transaction/TransactionRolledbackException.java: New file. * javax/transaction/TransactionRequiredException.java: New file. * javax/transaction/InvalidTransactionException.java: New file. * javax/naming/directory/SchemaViolationException.java: Use correct package. Import NamingException. * javax/naming/directory/NoSuchAttributeException.java, javax/naming/directory/InvalidSearchFilterException.java, javax/naming/directory/InvalidSearchControlsException.java, javax/naming/directory/InvalidAttributesException.java, javax/naming/directory/InvalidAttributeValueException.java, javax/naming/directory/InvalidAttributeIdentifierException.java, javax/naming/directory/AttributeModificationException.java, javax/naming/directory/AttributeInUseException.java: Likewise. * javax/naming/directory/InitialDirContext.java (getAttributes): Stub implementation. * javax/naming/RefAddr.java (RefAddr): Reindented. (equals): Renamed and reindented. * javax/naming/BinaryRefAddr.java (equals): Renamed and reindented. Co-Authored-By: Warren Levy <warrenl@redhat.com> From-SVN: r46474
This commit is contained in:
parent
e1cb83c580
commit
6dee3a2320
76 changed files with 4664 additions and 102 deletions
|
@ -1,3 +1,166 @@
|
|||
2001-10-24 Tom Tromey <tromey@redhat.com>
|
||||
Warren Levy <warrenl@redhat.com>
|
||||
|
||||
* Makefile.in: Rebuilt.
|
||||
* Makefile.am (javax_source_files): New macro.
|
||||
(ordinary_java_source_files): Added javax_source_files.
|
||||
(libgcj.jar): Search javax for class files.
|
||||
* javax/naming/LinkException.java (toString): Wrote.
|
||||
(toString(boolean)): Likewise.
|
||||
* javax/naming/ldap/InitialLdapContext.java: New file.
|
||||
* javax/naming/directory/InitialDirContext.java: Wrote.
|
||||
* javax/naming/spi/NamingManager.java (getPlusPath): Now has
|
||||
package-private protection.
|
||||
(getURLContext): Likewise.
|
||||
(NamingManager): Likewise.
|
||||
* javax/naming/spi/DirectoryManager.java: New file.
|
||||
* javax/naming/directory/BasicAttributes.java: New file.
|
||||
* javax/naming/directory/BasicAttribute.java: New file.
|
||||
* javax/naming/spi/ResolveResult.java
|
||||
(ResolveResult(Object,String)): Wrote.
|
||||
(appendRemainingName): Uncommented body.
|
||||
(appendRemainingComponent): Likewise.
|
||||
* javax/naming/ldap/ControlFactory.java: New file.
|
||||
* javax/naming/directory/AttributeModificationException.java
|
||||
(toString): Wrote.
|
||||
* javax/naming/spi/NamingManager.java (NamingManager): New
|
||||
constructor.
|
||||
(setInitialContextFactoryBuilder): Wrote.
|
||||
(getInitialContext): Look in system properties for class name as
|
||||
well. Use Class.forName().
|
||||
(getURLContext): Wrote.
|
||||
(ofb): New field.
|
||||
(setObjectFactoryBuilder): Wrote.
|
||||
(getObjectInstance): Wrote.
|
||||
(getContinuationContext): Wrote.
|
||||
(getPlusPath): New private method.
|
||||
(getStateToBind): Wrote.
|
||||
* javax/naming/CannotProceedException.java: Added missing methods &
|
||||
fields.
|
||||
* javax/naming/LinkException.java: Added missing methods & fields.
|
||||
* javax/naming/ReferralException.java (ReferralException): Made
|
||||
constructor protected per spec.
|
||||
Added missing abstract methods.
|
||||
* javax/naming/directory/Attribute.java: Updated copyright.
|
||||
* javax/naming/directory/AttributeModificationException.java: Ditto.
|
||||
* javax/naming/directory/Attributes.java: Ditto.
|
||||
* javax/naming/directory/DirContext.java: Ditto.
|
||||
* javax/naming/spi/NamingManager.java: Ditto.
|
||||
* javax/naming/spi/ResolveResult.java: Added comment.
|
||||
* javax/naming/directory/Attribute.java: Added missing interface
|
||||
methods.
|
||||
* javax/naming/directory/AttributeModificationException.java:
|
||||
Added missing methods & fields.
|
||||
* javax/naming/directory/directory/Attributes.java: Added missing
|
||||
interface methods.
|
||||
* javax/naming/directory/SearchControls.java: Maded serialized fields
|
||||
private.
|
||||
* javax/naming/event/NamingEvent.java: Added comment.
|
||||
* javax/naming/event/NamingExceptionEvent.java: Maded serialized field
|
||||
private.
|
||||
* javax/naming/ldap/UnsolicitedNotificationEvent.java: Maded
|
||||
serialized field private.
|
||||
* javax/naming/spi/NamingManager.java: Added missing field and stubbed
|
||||
missing methods.
|
||||
* javax/naming/directory/DirContext.java: Added missing interface
|
||||
fields & methods.
|
||||
* javax/naming/directory/InitialDirContext.java: Stubbed missing
|
||||
methods.
|
||||
* javax/naming/directory/ModificationItem.java: New class.
|
||||
* javax/naming/directory/SearchResult.java: New class.
|
||||
* javax/naming/directory/SearchControls.java: New class.
|
||||
* javax/naming/event/EventContext.java: New class.
|
||||
* javax/naming/event/EventDirContext.java: New class.
|
||||
* javax/naming/event/NamespaceChangeListener.java: New class.
|
||||
* javax/naming/event/NamingEvent.java: New class.
|
||||
* javax/naming/event/NamingExceptionEvent.java: New class.
|
||||
* javax/naming/event/NamingListener.java: New class.
|
||||
* javax/naming/event/ObjectChangeListener.java: New class.
|
||||
* javax/naming/ldap/Control.java: New class.
|
||||
* javax/naming/ldap/ExtendedRequest.java: New class.
|
||||
* javax/naming/ldap/ExtendedResponse.java: New class.
|
||||
* javax/naming/ldap/HasControls.java: New class.
|
||||
* javax/naming/ldap/LdapContext.java: New class.
|
||||
* javax/naming/ldap/LdapReferralException.java: New class.
|
||||
* javax/naming/ldap/UnsolicitedNotification.java: New class.
|
||||
* javax/naming/ldap/UnsolicitedNotificationEvent.java: New class.
|
||||
* javax/naming/ldap/UnsolicitedNotificationListener.java: New class.
|
||||
* javax/naming/spi/DirObjectFactory.java: New class.
|
||||
* javax/naming/spi/DirStateFactory.java: New class.
|
||||
* javax/naming/spi/ObjectFactoryBuilder.java: New class.
|
||||
* javax/naming/spi/ResolveResult.java: New class.
|
||||
* javax/naming/spi/Resolver.java: New class.
|
||||
* javax/naming/spi/StateFactory.java: New class.
|
||||
* javax/naming/spi/ObjectFactory.java: Made an interface per spec.
|
||||
* java/rmi/RemoteException.java: New class.
|
||||
* javax/transaction/HeuristicCommitException.java: New class.
|
||||
* javax/transaction/HeuristicMixedException.java: New class.
|
||||
* javax/transaction/HeuristicRollbackException.java: New class.
|
||||
* javax/transaction/NotSupportedException.java: New class.
|
||||
* javax/transaction/RollbackException.java: New class.
|
||||
* javax/transaction/Status.java: New class.
|
||||
* javax/transaction/Synchronization.java: New class.
|
||||
* javax/transaction/SystemException.java: New class.
|
||||
* javax/transaction/Transaction.java: New class.
|
||||
* javax/transaction/TransactionManager.java: New class.
|
||||
* javax/transaction/UserTransaction.java: New class.
|
||||
* javax/transaction/xa/XAException.java: Added public static fields.
|
||||
* javax/transaction/xa/XAResource.java: New class.
|
||||
* javax/transaction/xa/Xid.java: New class.
|
||||
* javax/naming/CompoundName.java (CompoundName(String)): Reverse
|
||||
elements if required. Handle case where quote is at end of
|
||||
string.
|
||||
* javax/naming/CompoundName.java (CompoundName(String)): Handle
|
||||
text left at end of parsing.
|
||||
(toString): Handle empty element at beginning.
|
||||
* javax/naming/CompositeName.java (toString): Handle empty element
|
||||
at beginning.
|
||||
(CompositeName(String)): Handle text left at end of parsing.
|
||||
Correctly compute boundary condition for quoting.
|
||||
* javax/naming/CompoundName.java: New file.
|
||||
* javax/naming/CompositeName.java: New file.
|
||||
* javax/naming/Binding.java: New file.
|
||||
* javax/naming/LinkRef.java: New file.
|
||||
* javax/naming/NameClassPair.java: New file.
|
||||
* javax/naming/Reference.java (addrs, classFactory,
|
||||
classFactoryLocation): New fields.
|
||||
(className): Now protected.
|
||||
(Reference): New constructors.
|
||||
(add): Now public. Implemented.
|
||||
(get(String)): Likewise.
|
||||
(add(int,RefAddr)): New method.
|
||||
(clear): Likewise.
|
||||
(clone): Likewise.
|
||||
(equals): Likewise.
|
||||
(get(int)): Likewise.
|
||||
(getAll): Likewise.
|
||||
(getFactoryClassLocation): Likewise.
|
||||
(getFactoryClassName): Likewise.
|
||||
(hashCode): Likewise.
|
||||
(remove): Likewise.
|
||||
(size): Likewise.
|
||||
(toString): Likewise.
|
||||
* javax/transaction/xa/XAException.java: New file.
|
||||
* javax/transaction/TransactionRolledbackException.java: New file.
|
||||
* javax/transaction/TransactionRequiredException.java: New file.
|
||||
* javax/transaction/InvalidTransactionException.java: New file.
|
||||
* javax/naming/directory/SchemaViolationException.java: Use
|
||||
correct package. Import NamingException.
|
||||
* javax/naming/directory/NoSuchAttributeException.java,
|
||||
javax/naming/directory/InvalidSearchFilterException.java,
|
||||
javax/naming/directory/InvalidSearchControlsException.java,
|
||||
javax/naming/directory/InvalidAttributesException.java,
|
||||
javax/naming/directory/InvalidAttributeValueException.java,
|
||||
javax/naming/directory/InvalidAttributeIdentifierException.java,
|
||||
javax/naming/directory/AttributeModificationException.java,
|
||||
javax/naming/directory/AttributeInUseException.java: Likewise.
|
||||
* javax/naming/directory/InitialDirContext.java (getAttributes):
|
||||
Stub implementation.
|
||||
* javax/naming/RefAddr.java (RefAddr): Reindented.
|
||||
(equals): Renamed and reindented.
|
||||
* javax/naming/BinaryRefAddr.java (equals): Renamed and
|
||||
reindented.
|
||||
|
||||
2001-10-24 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* java/lang/reflect/Field.java: Made many methods private.
|
||||
|
|
|
@ -192,7 +192,7 @@ libgcj.jar: $(built_java_source_files) $(java_source_files) $(x_java_source_file
|
|||
test "$$fail" = no)
|
||||
-@rm -f tmp-list libgcj.jar
|
||||
## Note that we explicitly want to include directory information.
|
||||
find java gnu org -type d -o -type f -name '*.class' | \
|
||||
find java gnu javax org -type d -o -type f -name '*.class' | \
|
||||
sed -e '/\/\./d' -e '/\/xlib/d' | \
|
||||
$(ZIP) cfM0E@ $@
|
||||
|
||||
|
@ -912,6 +912,114 @@ gnu/java/rmi/server/UnicastRemoteStub.java \
|
|||
gnu/java/rmi/server/UnicastServer.java \
|
||||
gnu/java/rmi/server/UnicastServerRef.java
|
||||
|
||||
javax_source_files = \
|
||||
javax/naming/directory/Attribute.java \
|
||||
javax/naming/directory/AttributeInUseException.java \
|
||||
javax/naming/directory/AttributeModificationException.java \
|
||||
javax/naming/directory/Attributes.java \
|
||||
javax/naming/directory/DirContext.java \
|
||||
javax/naming/directory/InvalidAttributeIdentifierException.java \
|
||||
javax/naming/directory/InvalidAttributeValueException.java \
|
||||
javax/naming/directory/InvalidAttributesException.java \
|
||||
javax/naming/directory/InvalidSearchControlsException.java \
|
||||
javax/naming/directory/InvalidSearchFilterException.java \
|
||||
javax/naming/directory/NoSuchAttributeException.java \
|
||||
javax/naming/directory/SchemaViolationException.java \
|
||||
javax/naming/directory/BasicAttribute.java \
|
||||
javax/naming/directory/BasicAttributes.java \
|
||||
javax/naming/directory/ModificationItem.java \
|
||||
javax/naming/directory/SearchControls.java \
|
||||
javax/naming/directory/SearchResult.java \
|
||||
javax/naming/directory/InitialDirContext.java \
|
||||
javax/naming/AuthenticationException.java \
|
||||
javax/naming/AuthenticationNotSupportedException.java \
|
||||
javax/naming/CannotProceedException.java \
|
||||
javax/naming/CommunicationException.java \
|
||||
javax/naming/ConfigurationException.java \
|
||||
javax/naming/Context.java \
|
||||
javax/naming/ContextNotEmptyException.java \
|
||||
javax/naming/InsufficientResourcesException.java \
|
||||
javax/naming/InterruptedNamingException.java \
|
||||
javax/naming/BinaryRefAddr.java \
|
||||
javax/naming/LimitExceededException.java \
|
||||
javax/naming/LinkException.java \
|
||||
javax/naming/LinkLoopException.java \
|
||||
javax/naming/MalformedLinkException.java \
|
||||
javax/naming/Name.java \
|
||||
javax/naming/NameAlreadyBoundException.java \
|
||||
javax/naming/NameNotFoundException.java \
|
||||
javax/naming/NameParser.java \
|
||||
javax/naming/NamingEnumeration.java \
|
||||
javax/naming/InitialContext.java \
|
||||
javax/naming/NamingSecurityException.java \
|
||||
javax/naming/NoInitialContextException.java \
|
||||
javax/naming/NoPermissionException.java \
|
||||
javax/naming/NotContextException.java \
|
||||
javax/naming/NamingException.java \
|
||||
javax/naming/PartialResultException.java \
|
||||
javax/naming/event/EventContext.java \
|
||||
javax/naming/event/EventDirContext.java \
|
||||
javax/naming/event/NamespaceChangeListener.java \
|
||||
javax/naming/event/NamingEvent.java \
|
||||
javax/naming/event/NamingExceptionEvent.java \
|
||||
javax/naming/event/NamingListener.java \
|
||||
javax/naming/event/ObjectChangeListener.java \
|
||||
javax/naming/RefAddr.java \
|
||||
javax/naming/Reference.java \
|
||||
javax/naming/Referenceable.java \
|
||||
javax/naming/ReferralException.java \
|
||||
javax/naming/ServiceUnavailableException.java \
|
||||
javax/naming/SizeLimitExceededException.java \
|
||||
javax/naming/StringRefAddr.java \
|
||||
javax/naming/TimeLimitExceededException.java \
|
||||
javax/naming/spi/InitialContextFactory.java \
|
||||
javax/naming/spi/InitialContextFactoryBuilder.java \
|
||||
javax/naming/spi/NamingManager.java \
|
||||
javax/naming/spi/ObjectFactory.java \
|
||||
javax/naming/spi/Resolver.java \
|
||||
javax/naming/spi/DirObjectFactory.java \
|
||||
javax/naming/spi/DirStateFactory.java \
|
||||
javax/naming/spi/DirectoryManager.java \
|
||||
javax/naming/spi/ObjectFactoryBuilder.java \
|
||||
javax/naming/spi/ResolveResult.java \
|
||||
javax/naming/spi/StateFactory.java \
|
||||
javax/naming/InvalidNameException.java \
|
||||
javax/naming/Binding.java \
|
||||
javax/naming/CompositeName.java \
|
||||
javax/naming/CompoundName.java \
|
||||
javax/naming/LinkRef.java \
|
||||
javax/naming/NameClassPair.java \
|
||||
javax/naming/ldap/Control.java \
|
||||
javax/naming/ldap/ControlFactory.java \
|
||||
javax/naming/ldap/ExtendedRequest.java \
|
||||
javax/naming/ldap/ExtendedResponse.java \
|
||||
javax/naming/ldap/HasControls.java \
|
||||
javax/naming/ldap/InitialLdapContext.java \
|
||||
javax/naming/ldap/LdapContext.java \
|
||||
javax/naming/ldap/LdapReferralException.java \
|
||||
javax/naming/ldap/UnsolicitedNotification.java \
|
||||
javax/naming/ldap/UnsolicitedNotificationEvent.java \
|
||||
javax/naming/ldap/UnsolicitedNotificationListener.java \
|
||||
javax/naming/OperationNotSupportedException.java \
|
||||
javax/transaction/xa/XAException.java \
|
||||
javax/transaction/xa/XAResource.java \
|
||||
javax/transaction/xa/Xid.java \
|
||||
javax/transaction/HeuristicCommitException.java \
|
||||
javax/transaction/HeuristicMixedException.java \
|
||||
javax/transaction/HeuristicRollbackException.java \
|
||||
javax/transaction/InvalidTransactionException.java \
|
||||
javax/transaction/NotSupportedException.java \
|
||||
javax/transaction/RollbackException.java \
|
||||
javax/transaction/Status.java \
|
||||
javax/transaction/Synchronization.java \
|
||||
javax/transaction/SystemException.java \
|
||||
javax/transaction/Transaction.java \
|
||||
javax/transaction/TransactionManager.java \
|
||||
javax/transaction/TransactionRequiredException.java \
|
||||
javax/transaction/TransactionRolledbackException.java \
|
||||
javax/transaction/UserTransaction.java
|
||||
|
||||
|
||||
## Java files which are created by configure and thus are in the build
|
||||
## directory.
|
||||
built_java_source_files = java/lang/ConcreteProcess.java \
|
||||
|
@ -1475,7 +1583,8 @@ org/xml/sax/XMLFilter.java \
|
|||
org/xml/sax/XMLReader.java \
|
||||
$(rmi_java_source_files) \
|
||||
$(awt_java_source_files) \
|
||||
$(convert_source_files)
|
||||
$(convert_source_files) \
|
||||
$(javax_source_files)
|
||||
|
||||
|
||||
java_source_files = $(special_java_source_files) $(ordinary_java_source_files)
|
||||
|
|
|
@ -654,6 +654,114 @@ gnu/java/rmi/server/UnicastServer.java \
|
|||
gnu/java/rmi/server/UnicastServerRef.java
|
||||
|
||||
|
||||
javax_source_files = \
|
||||
javax/naming/directory/Attribute.java \
|
||||
javax/naming/directory/AttributeInUseException.java \
|
||||
javax/naming/directory/AttributeModificationException.java \
|
||||
javax/naming/directory/Attributes.java \
|
||||
javax/naming/directory/DirContext.java \
|
||||
javax/naming/directory/InvalidAttributeIdentifierException.java \
|
||||
javax/naming/directory/InvalidAttributeValueException.java \
|
||||
javax/naming/directory/InvalidAttributesException.java \
|
||||
javax/naming/directory/InvalidSearchControlsException.java \
|
||||
javax/naming/directory/InvalidSearchFilterException.java \
|
||||
javax/naming/directory/NoSuchAttributeException.java \
|
||||
javax/naming/directory/SchemaViolationException.java \
|
||||
javax/naming/directory/BasicAttribute.java \
|
||||
javax/naming/directory/BasicAttributes.java \
|
||||
javax/naming/directory/ModificationItem.java \
|
||||
javax/naming/directory/SearchControls.java \
|
||||
javax/naming/directory/SearchResult.java \
|
||||
javax/naming/directory/InitialDirContext.java \
|
||||
javax/naming/AuthenticationException.java \
|
||||
javax/naming/AuthenticationNotSupportedException.java \
|
||||
javax/naming/CannotProceedException.java \
|
||||
javax/naming/CommunicationException.java \
|
||||
javax/naming/ConfigurationException.java \
|
||||
javax/naming/Context.java \
|
||||
javax/naming/ContextNotEmptyException.java \
|
||||
javax/naming/InsufficientResourcesException.java \
|
||||
javax/naming/InterruptedNamingException.java \
|
||||
javax/naming/BinaryRefAddr.java \
|
||||
javax/naming/LimitExceededException.java \
|
||||
javax/naming/LinkException.java \
|
||||
javax/naming/LinkLoopException.java \
|
||||
javax/naming/MalformedLinkException.java \
|
||||
javax/naming/Name.java \
|
||||
javax/naming/NameAlreadyBoundException.java \
|
||||
javax/naming/NameNotFoundException.java \
|
||||
javax/naming/NameParser.java \
|
||||
javax/naming/NamingEnumeration.java \
|
||||
javax/naming/InitialContext.java \
|
||||
javax/naming/NamingSecurityException.java \
|
||||
javax/naming/NoInitialContextException.java \
|
||||
javax/naming/NoPermissionException.java \
|
||||
javax/naming/NotContextException.java \
|
||||
javax/naming/NamingException.java \
|
||||
javax/naming/PartialResultException.java \
|
||||
javax/naming/event/EventContext.java \
|
||||
javax/naming/event/EventDirContext.java \
|
||||
javax/naming/event/NamespaceChangeListener.java \
|
||||
javax/naming/event/NamingEvent.java \
|
||||
javax/naming/event/NamingExceptionEvent.java \
|
||||
javax/naming/event/NamingListener.java \
|
||||
javax/naming/event/ObjectChangeListener.java \
|
||||
javax/naming/RefAddr.java \
|
||||
javax/naming/Reference.java \
|
||||
javax/naming/Referenceable.java \
|
||||
javax/naming/ReferralException.java \
|
||||
javax/naming/ServiceUnavailableException.java \
|
||||
javax/naming/SizeLimitExceededException.java \
|
||||
javax/naming/StringRefAddr.java \
|
||||
javax/naming/TimeLimitExceededException.java \
|
||||
javax/naming/spi/InitialContextFactory.java \
|
||||
javax/naming/spi/InitialContextFactoryBuilder.java \
|
||||
javax/naming/spi/NamingManager.java \
|
||||
javax/naming/spi/ObjectFactory.java \
|
||||
javax/naming/spi/Resolver.java \
|
||||
javax/naming/spi/DirObjectFactory.java \
|
||||
javax/naming/spi/DirStateFactory.java \
|
||||
javax/naming/spi/DirectoryManager.java \
|
||||
javax/naming/spi/ObjectFactoryBuilder.java \
|
||||
javax/naming/spi/ResolveResult.java \
|
||||
javax/naming/spi/StateFactory.java \
|
||||
javax/naming/InvalidNameException.java \
|
||||
javax/naming/Binding.java \
|
||||
javax/naming/CompositeName.java \
|
||||
javax/naming/CompoundName.java \
|
||||
javax/naming/LinkRef.java \
|
||||
javax/naming/NameClassPair.java \
|
||||
javax/naming/ldap/Control.java \
|
||||
javax/naming/ldap/ControlFactory.java \
|
||||
javax/naming/ldap/ExtendedRequest.java \
|
||||
javax/naming/ldap/ExtendedResponse.java \
|
||||
javax/naming/ldap/HasControls.java \
|
||||
javax/naming/ldap/InitialLdapContext.java \
|
||||
javax/naming/ldap/LdapContext.java \
|
||||
javax/naming/ldap/LdapReferralException.java \
|
||||
javax/naming/ldap/UnsolicitedNotification.java \
|
||||
javax/naming/ldap/UnsolicitedNotificationEvent.java \
|
||||
javax/naming/ldap/UnsolicitedNotificationListener.java \
|
||||
javax/naming/OperationNotSupportedException.java \
|
||||
javax/transaction/xa/XAException.java \
|
||||
javax/transaction/xa/XAResource.java \
|
||||
javax/transaction/xa/Xid.java \
|
||||
javax/transaction/HeuristicCommitException.java \
|
||||
javax/transaction/HeuristicMixedException.java \
|
||||
javax/transaction/HeuristicRollbackException.java \
|
||||
javax/transaction/InvalidTransactionException.java \
|
||||
javax/transaction/NotSupportedException.java \
|
||||
javax/transaction/RollbackException.java \
|
||||
javax/transaction/Status.java \
|
||||
javax/transaction/Synchronization.java \
|
||||
javax/transaction/SystemException.java \
|
||||
javax/transaction/Transaction.java \
|
||||
javax/transaction/TransactionManager.java \
|
||||
javax/transaction/TransactionRequiredException.java \
|
||||
javax/transaction/TransactionRolledbackException.java \
|
||||
javax/transaction/UserTransaction.java
|
||||
|
||||
|
||||
built_java_source_files = java/lang/ConcreteProcess.java \
|
||||
gnu/classpath/Configuration.java
|
||||
|
||||
|
@ -1208,7 +1316,8 @@ org/xml/sax/XMLFilter.java \
|
|||
org/xml/sax/XMLReader.java \
|
||||
$(rmi_java_source_files) \
|
||||
$(awt_java_source_files) \
|
||||
$(convert_source_files)
|
||||
$(convert_source_files) \
|
||||
$(javax_source_files)
|
||||
|
||||
|
||||
java_source_files = $(special_java_source_files) $(ordinary_java_source_files)
|
||||
|
@ -2140,7 +2249,105 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
|||
.deps/java/util/zip/ZipException.P .deps/java/util/zip/ZipFile.P \
|
||||
.deps/java/util/zip/ZipInputStream.P \
|
||||
.deps/java/util/zip/ZipOutputStream.P .deps/java/util/zip/natDeflater.P \
|
||||
.deps/java/util/zip/natInflater.P .deps/jni.P .deps/name-finder.P \
|
||||
.deps/java/util/zip/natInflater.P \
|
||||
.deps/javax/naming/AuthenticationException.P \
|
||||
.deps/javax/naming/AuthenticationNotSupportedException.P \
|
||||
.deps/javax/naming/BinaryRefAddr.P .deps/javax/naming/Binding.P \
|
||||
.deps/javax/naming/CannotProceedException.P \
|
||||
.deps/javax/naming/CommunicationException.P \
|
||||
.deps/javax/naming/CompositeName.P .deps/javax/naming/CompoundName.P \
|
||||
.deps/javax/naming/ConfigurationException.P \
|
||||
.deps/javax/naming/Context.P \
|
||||
.deps/javax/naming/ContextNotEmptyException.P \
|
||||
.deps/javax/naming/InitialContext.P \
|
||||
.deps/javax/naming/InsufficientResourcesException.P \
|
||||
.deps/javax/naming/InterruptedNamingException.P \
|
||||
.deps/javax/naming/InvalidNameException.P \
|
||||
.deps/javax/naming/LimitExceededException.P \
|
||||
.deps/javax/naming/LinkException.P \
|
||||
.deps/javax/naming/LinkLoopException.P .deps/javax/naming/LinkRef.P \
|
||||
.deps/javax/naming/MalformedLinkException.P .deps/javax/naming/Name.P \
|
||||
.deps/javax/naming/NameAlreadyBoundException.P \
|
||||
.deps/javax/naming/NameClassPair.P \
|
||||
.deps/javax/naming/NameNotFoundException.P \
|
||||
.deps/javax/naming/NameParser.P .deps/javax/naming/NamingEnumeration.P \
|
||||
.deps/javax/naming/NamingException.P \
|
||||
.deps/javax/naming/NamingSecurityException.P \
|
||||
.deps/javax/naming/NoInitialContextException.P \
|
||||
.deps/javax/naming/NoPermissionException.P \
|
||||
.deps/javax/naming/NotContextException.P \
|
||||
.deps/javax/naming/OperationNotSupportedException.P \
|
||||
.deps/javax/naming/PartialResultException.P \
|
||||
.deps/javax/naming/RefAddr.P .deps/javax/naming/Reference.P \
|
||||
.deps/javax/naming/Referenceable.P \
|
||||
.deps/javax/naming/ReferralException.P \
|
||||
.deps/javax/naming/ServiceUnavailableException.P \
|
||||
.deps/javax/naming/SizeLimitExceededException.P \
|
||||
.deps/javax/naming/StringRefAddr.P \
|
||||
.deps/javax/naming/TimeLimitExceededException.P \
|
||||
.deps/javax/naming/directory/Attribute.P \
|
||||
.deps/javax/naming/directory/AttributeInUseException.P \
|
||||
.deps/javax/naming/directory/AttributeModificationException.P \
|
||||
.deps/javax/naming/directory/Attributes.P \
|
||||
.deps/javax/naming/directory/BasicAttribute.P \
|
||||
.deps/javax/naming/directory/BasicAttributes.P \
|
||||
.deps/javax/naming/directory/DirContext.P \
|
||||
.deps/javax/naming/directory/InitialDirContext.P \
|
||||
.deps/javax/naming/directory/InvalidAttributeIdentifierException.P \
|
||||
.deps/javax/naming/directory/InvalidAttributeValueException.P \
|
||||
.deps/javax/naming/directory/InvalidAttributesException.P \
|
||||
.deps/javax/naming/directory/InvalidSearchControlsException.P \
|
||||
.deps/javax/naming/directory/InvalidSearchFilterException.P \
|
||||
.deps/javax/naming/directory/ModificationItem.P \
|
||||
.deps/javax/naming/directory/NoSuchAttributeException.P \
|
||||
.deps/javax/naming/directory/SchemaViolationException.P \
|
||||
.deps/javax/naming/directory/SearchControls.P \
|
||||
.deps/javax/naming/directory/SearchResult.P \
|
||||
.deps/javax/naming/event/EventContext.P \
|
||||
.deps/javax/naming/event/EventDirContext.P \
|
||||
.deps/javax/naming/event/NamespaceChangeListener.P \
|
||||
.deps/javax/naming/event/NamingEvent.P \
|
||||
.deps/javax/naming/event/NamingExceptionEvent.P \
|
||||
.deps/javax/naming/event/NamingListener.P \
|
||||
.deps/javax/naming/event/ObjectChangeListener.P \
|
||||
.deps/javax/naming/ldap/Control.P \
|
||||
.deps/javax/naming/ldap/ControlFactory.P \
|
||||
.deps/javax/naming/ldap/ExtendedRequest.P \
|
||||
.deps/javax/naming/ldap/ExtendedResponse.P \
|
||||
.deps/javax/naming/ldap/HasControls.P \
|
||||
.deps/javax/naming/ldap/InitialLdapContext.P \
|
||||
.deps/javax/naming/ldap/LdapContext.P \
|
||||
.deps/javax/naming/ldap/LdapReferralException.P \
|
||||
.deps/javax/naming/ldap/UnsolicitedNotification.P \
|
||||
.deps/javax/naming/ldap/UnsolicitedNotificationEvent.P \
|
||||
.deps/javax/naming/ldap/UnsolicitedNotificationListener.P \
|
||||
.deps/javax/naming/spi/DirObjectFactory.P \
|
||||
.deps/javax/naming/spi/DirStateFactory.P \
|
||||
.deps/javax/naming/spi/DirectoryManager.P \
|
||||
.deps/javax/naming/spi/InitialContextFactory.P \
|
||||
.deps/javax/naming/spi/InitialContextFactoryBuilder.P \
|
||||
.deps/javax/naming/spi/NamingManager.P \
|
||||
.deps/javax/naming/spi/ObjectFactory.P \
|
||||
.deps/javax/naming/spi/ObjectFactoryBuilder.P \
|
||||
.deps/javax/naming/spi/ResolveResult.P \
|
||||
.deps/javax/naming/spi/Resolver.P .deps/javax/naming/spi/StateFactory.P \
|
||||
.deps/javax/transaction/HeuristicCommitException.P \
|
||||
.deps/javax/transaction/HeuristicMixedException.P \
|
||||
.deps/javax/transaction/HeuristicRollbackException.P \
|
||||
.deps/javax/transaction/InvalidTransactionException.P \
|
||||
.deps/javax/transaction/NotSupportedException.P \
|
||||
.deps/javax/transaction/RollbackException.P \
|
||||
.deps/javax/transaction/Status.P \
|
||||
.deps/javax/transaction/Synchronization.P \
|
||||
.deps/javax/transaction/SystemException.P \
|
||||
.deps/javax/transaction/Transaction.P \
|
||||
.deps/javax/transaction/TransactionManager.P \
|
||||
.deps/javax/transaction/TransactionRequiredException.P \
|
||||
.deps/javax/transaction/TransactionRolledbackException.P \
|
||||
.deps/javax/transaction/UserTransaction.P \
|
||||
.deps/javax/transaction/xa/XAException.P \
|
||||
.deps/javax/transaction/xa/XAResource.P \
|
||||
.deps/javax/transaction/xa/Xid.P .deps/jni.P .deps/name-finder.P \
|
||||
.deps/no-threads.P .deps/nogc.P .deps/org/w3c/dom/Attr.P \
|
||||
.deps/org/w3c/dom/CDATASection.P .deps/org/w3c/dom/CharacterData.P \
|
||||
.deps/org/w3c/dom/Comment.P .deps/org/w3c/dom/DOMException.P \
|
||||
|
@ -2718,7 +2925,7 @@ libgcj.jar: $(built_java_source_files) $(java_source_files) $(x_java_source_file
|
|||
done; \
|
||||
test "$$fail" = no)
|
||||
-@rm -f tmp-list libgcj.jar
|
||||
find java gnu org -type d -o -type f -name '*.class' | \
|
||||
find java gnu javax org -type d -o -type f -name '*.class' | \
|
||||
sed -e '/\/\./d' -e '/\/xlib/d' | \
|
||||
$(ZIP) cfM0E@ $@
|
||||
|
||||
|
|
|
@ -86,17 +86,17 @@ public class BinaryRefAddr extends RefAddr
|
|||
* the addrType is the same as this addrType and the bytes of the
|
||||
* content are the same.
|
||||
*/
|
||||
public boolean equal(Object o)
|
||||
public boolean equals (Object o)
|
||||
{
|
||||
if (o instanceof BinaryRefAddr)
|
||||
{
|
||||
BinaryRefAddr refAddr = (BinaryRefAddr) o;
|
||||
if (this.getType().equals(refAddr.getType()))
|
||||
{
|
||||
byte[] c1 = (byte[]) this.getContent();
|
||||
byte[] c2 = (byte[]) refAddr.getContent();
|
||||
return Arrays.equals(c1, c2);
|
||||
}
|
||||
{
|
||||
byte[] c1 = (byte[]) this.getContent();
|
||||
byte[] c2 = (byte[]) refAddr.getContent();
|
||||
return Arrays.equals(c1, c2);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
68
libjava/javax/naming/Binding.java
Normal file
68
libjava/javax/naming/Binding.java
Normal file
|
@ -0,0 +1,68 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date May 16, 2001
|
||||
*/
|
||||
public class Binding extends NameClassPair
|
||||
{
|
||||
public Binding (String name, Object obj)
|
||||
{
|
||||
super (name, null);
|
||||
boundObj = obj;
|
||||
}
|
||||
|
||||
public Binding (String name, Object obj, boolean isRelative)
|
||||
{
|
||||
super (name, null, isRelative);
|
||||
boundObj = obj;
|
||||
}
|
||||
|
||||
public Binding (String name, String className, Object obj)
|
||||
{
|
||||
super (name, className);
|
||||
boundObj = obj;
|
||||
}
|
||||
|
||||
public Binding (String name, String className, Object obj,
|
||||
boolean isRelative)
|
||||
{
|
||||
super (name, className, isRelative);
|
||||
boundObj = obj;
|
||||
}
|
||||
|
||||
public String getClassName ()
|
||||
{
|
||||
String r = super.getClassName ();
|
||||
if (r != null)
|
||||
return r;
|
||||
return boundObj == null ? null : boundObj.getClass ().getName ();
|
||||
}
|
||||
|
||||
public Object getObject ()
|
||||
{
|
||||
return boundObj;
|
||||
}
|
||||
|
||||
public void setObject (Object obj)
|
||||
{
|
||||
boundObj = obj;
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
// Format specified by the documentation.
|
||||
return super.toString () + ":" + boundObj.toString ();
|
||||
}
|
||||
|
||||
// This name is fixed by the serialization spec.
|
||||
private Object boundObj;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -9,9 +9,21 @@ details. */
|
|||
package javax.naming;
|
||||
|
||||
import java.lang.Exception;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 14, 2001
|
||||
*/
|
||||
|
||||
public class CannotProceedException extends NamingException
|
||||
{
|
||||
// Serialized fields.
|
||||
protected Name remainingNewName;
|
||||
protected Hashtable environment;
|
||||
protected Name altName;
|
||||
protected Context altNameCtx;
|
||||
|
||||
public CannotProceedException ()
|
||||
{
|
||||
super ();
|
||||
|
@ -21,4 +33,44 @@ public class CannotProceedException extends NamingException
|
|||
{
|
||||
super (msg);
|
||||
}
|
||||
|
||||
public Hashtable getEnvironment()
|
||||
{
|
||||
return environment;
|
||||
}
|
||||
|
||||
public void setEnvironment(Hashtable environment)
|
||||
{
|
||||
this.environment = environment;
|
||||
}
|
||||
|
||||
public Name getRemainingNewName()
|
||||
{
|
||||
return remainingNewName;
|
||||
}
|
||||
|
||||
public void setRemainingNewName(Name newName)
|
||||
{
|
||||
remainingNewName = (Name) newName.clone();
|
||||
}
|
||||
|
||||
public Name getAltName()
|
||||
{
|
||||
return altName;
|
||||
}
|
||||
|
||||
public void setAltName(Name altName)
|
||||
{
|
||||
this.altName = altName;
|
||||
}
|
||||
|
||||
public Context getAltNameCtx()
|
||||
{
|
||||
return altNameCtx;
|
||||
}
|
||||
|
||||
public void setAltNameCtx(Context altNameCtx)
|
||||
{
|
||||
this.altNameCtx = altNameCtx;
|
||||
}
|
||||
}
|
||||
|
|
289
libjava/javax/naming/CompositeName.java
Normal file
289
libjava/javax/naming/CompositeName.java
Normal file
|
@ -0,0 +1,289 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Enumeration;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date May 16, 2001
|
||||
*
|
||||
* FIXME: must write readObject and writeObject to conform to
|
||||
* serialization spec.
|
||||
*/
|
||||
public class CompositeName implements Name, Cloneable, Serializable
|
||||
{
|
||||
public CompositeName ()
|
||||
{
|
||||
elts = new Vector ();
|
||||
}
|
||||
|
||||
protected CompositeName (Enumeration comps)
|
||||
{
|
||||
elts = new Vector ();
|
||||
try
|
||||
{
|
||||
while (comps.hasMoreElements ())
|
||||
elts.add (comps.nextElement ());
|
||||
}
|
||||
catch (NoSuchElementException ignore)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public CompositeName (String n) throws InvalidNameException
|
||||
{
|
||||
elts = new Vector ();
|
||||
// Parse the string into its components.
|
||||
final char no_quote = 'x'; // Use 'x' to mean no quoting.
|
||||
char quote = no_quote;
|
||||
boolean escaped = false;
|
||||
StringBuffer new_element = new StringBuffer ();
|
||||
for (int i = 0; i < n.length (); ++i)
|
||||
{
|
||||
char c = n.charAt (i);
|
||||
if (escaped)
|
||||
escaped = false;
|
||||
else if (c == '\\')
|
||||
{
|
||||
escaped = true;
|
||||
continue;
|
||||
}
|
||||
else if (quote != no_quote)
|
||||
{
|
||||
if (quote == c)
|
||||
{
|
||||
// The quotes must surround a complete component.
|
||||
if (i + 1 < n.length () && n.charAt (i + 1) != '/')
|
||||
throw new InvalidNameException ("close quote before end of component");
|
||||
elts.add (new_element.toString ());
|
||||
new_element.setLength (0);
|
||||
quote = no_quote;
|
||||
continue;
|
||||
}
|
||||
// Otherwise, fall through.
|
||||
}
|
||||
// Quotes are only special at the start of a component.
|
||||
else if (new_element.length () == 0
|
||||
&& (c == '\'' || c == '"'))
|
||||
{
|
||||
quote = c;
|
||||
continue;
|
||||
}
|
||||
else if (c == '/')
|
||||
{
|
||||
elts.add (new_element.toString ());
|
||||
new_element.setLength (0);
|
||||
continue;
|
||||
}
|
||||
|
||||
new_element.append (c);
|
||||
}
|
||||
|
||||
if (new_element.length () != 0)
|
||||
elts.add (new_element.toString ());
|
||||
|
||||
// Error checking.
|
||||
if (quote != no_quote)
|
||||
throw new InvalidNameException ("unterminated quote");
|
||||
if (escaped)
|
||||
throw new InvalidNameException ("trailing escape character");
|
||||
}
|
||||
|
||||
public Name add (int posn, String comp) throws InvalidNameException
|
||||
{
|
||||
elts.add (posn, comp);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Name add (String comp) throws InvalidNameException
|
||||
{
|
||||
elts.add (comp);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Name addAll (int posn, Name n) throws InvalidNameException
|
||||
{
|
||||
Enumeration e = n.getAll ();
|
||||
try
|
||||
{
|
||||
while (e.hasMoreElements ())
|
||||
{
|
||||
elts.add (posn, e.nextElement ());
|
||||
++posn;
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException ignore)
|
||||
{
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Name addAll (Name suffix) throws InvalidNameException
|
||||
{
|
||||
Enumeration e = suffix.getAll ();
|
||||
try
|
||||
{
|
||||
while (e.hasMoreElements ())
|
||||
elts.add (e.nextElement ());
|
||||
}
|
||||
catch (NoSuchElementException ignore)
|
||||
{
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Object clone ()
|
||||
{
|
||||
return new CompositeName (elts.elements ());
|
||||
}
|
||||
|
||||
public int compareTo (Object obj)
|
||||
{
|
||||
if (obj == null || ! (obj instanceof CompositeName))
|
||||
throw new ClassCastException ("CompositeName.compareTo() expected CompositeName");
|
||||
CompositeName cn = (CompositeName) obj;
|
||||
int last = Math.min (cn.elts.size (), elts.size ());
|
||||
for (int i = 0; i < last; ++i)
|
||||
{
|
||||
String f = (String) elts.get (i);
|
||||
int comp = f.compareTo ((String) cn.elts.get (i));
|
||||
if (comp != 0)
|
||||
return comp;
|
||||
}
|
||||
return elts.size () - cn.elts.size ();
|
||||
}
|
||||
|
||||
public boolean endsWith (Name n)
|
||||
{
|
||||
if (! (n instanceof CompositeName))
|
||||
return false;
|
||||
CompositeName cn = (CompositeName) n;
|
||||
if (cn.elts.size () > elts.size ())
|
||||
return false;
|
||||
int delta = elts.size () - cn.elts.size ();
|
||||
for (int i = 0; i < cn.elts.size (); ++i)
|
||||
{
|
||||
if (! cn.elts.get (i).equals (elts.get (delta + i)))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof CompositeName))
|
||||
return false;
|
||||
CompositeName cn = (CompositeName) obj;
|
||||
return elts.equals (cn.elts);
|
||||
}
|
||||
|
||||
public String get (int posn)
|
||||
{
|
||||
return (String) elts.get (posn);
|
||||
}
|
||||
|
||||
public Enumeration getAll ()
|
||||
{
|
||||
return elts.elements ();
|
||||
}
|
||||
|
||||
public Name getPrefix (int posn)
|
||||
{
|
||||
CompositeName cn = new CompositeName ();
|
||||
for (int i = 0; i < posn; ++i)
|
||||
cn.elts.add ((String) elts.get (i));
|
||||
return cn;
|
||||
}
|
||||
|
||||
public Name getSuffix (int posn)
|
||||
{
|
||||
if (posn > elts.size ())
|
||||
throw new ArrayIndexOutOfBoundsException (posn);
|
||||
CompositeName cn = new CompositeName ();
|
||||
for (int i = posn; i < elts.size (); ++i)
|
||||
cn.elts.add ((String) elts.get (i));
|
||||
return cn;
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
// Specified in documentation.
|
||||
int h = 0;
|
||||
for (int i = 0; i < elts.size (); ++i)
|
||||
h += elts.get (i).hashCode ();
|
||||
return h;
|
||||
}
|
||||
|
||||
public boolean isEmpty ()
|
||||
{
|
||||
return elts.isEmpty ();
|
||||
}
|
||||
|
||||
public Object remove (int posn) throws InvalidNameException
|
||||
{
|
||||
return elts.remove (posn);
|
||||
}
|
||||
|
||||
public int size ()
|
||||
{
|
||||
return elts.size ();
|
||||
}
|
||||
|
||||
public boolean startsWith (Name n)
|
||||
{
|
||||
if (! (n instanceof CompositeName))
|
||||
return false;
|
||||
CompositeName cn = (CompositeName) n;
|
||||
if (cn.elts.size () > elts.size ())
|
||||
return false;
|
||||
for (int i = 0; i < cn.elts.size (); ++i)
|
||||
{
|
||||
if (! cn.elts.get (i).equals (elts.get (i)))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
StringBuffer result = new StringBuffer ();
|
||||
for (int i = 0; i < elts.size (); ++i)
|
||||
{
|
||||
// For simplicity we choose to always quote using escapes and
|
||||
// never quotes.
|
||||
String elt = (String) elts.get (i);
|
||||
if (i > 0
|
||||
|| (i == elts.size () - 1 && elt.equals ("")))
|
||||
result.append ('/');
|
||||
for (int k = 0; k < elt.length (); ++k)
|
||||
{
|
||||
char c = elt.charAt (k);
|
||||
// We must quote
|
||||
// ... a leading quote,
|
||||
if ((k == 0 && (c == '"' || c == '\''))
|
||||
// ... an escape preceding a meta character,
|
||||
// or at the end of a component,
|
||||
|| (c == '\\'
|
||||
&& (k == elt.length () - 1
|
||||
|| "\\'\"/".indexOf (elt.charAt (k + 1)) != -1))
|
||||
// ... or a component separator.
|
||||
|| c == '/')
|
||||
result.append ('\\');
|
||||
result.append (c);
|
||||
}
|
||||
}
|
||||
return result.toString ();
|
||||
}
|
||||
|
||||
private transient Vector elts;
|
||||
}
|
460
libjava/javax/naming/CompoundName.java
Normal file
460
libjava/javax/naming/CompoundName.java
Normal file
|
@ -0,0 +1,460 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Properties;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date May 16, 2001
|
||||
*
|
||||
* FIXME: must write readObject and writeObject to conform to
|
||||
* serialization spec.
|
||||
*
|
||||
* FIXME: this class is underspecified. For instance, the `flat'
|
||||
* direction is never described. If it means that the CompoundName
|
||||
* can only have a single element, then the Enumeration-based
|
||||
* constructor ought to throw InvalidNameException.
|
||||
*/
|
||||
public class CompoundName implements Name, Cloneable, Serializable
|
||||
{
|
||||
private CompoundName (Properties syntax)
|
||||
{
|
||||
elts = new Vector ();
|
||||
mySyntax = syntax;
|
||||
initializeSyntax ();
|
||||
}
|
||||
|
||||
protected CompoundName (Enumeration comps, Properties syntax)
|
||||
{
|
||||
elts = new Vector ();
|
||||
mySyntax = syntax;
|
||||
initializeSyntax ();
|
||||
try
|
||||
{
|
||||
while (comps.hasMoreElements ())
|
||||
elts.add (comps.nextElement ());
|
||||
}
|
||||
catch (NoSuchElementException ignore)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public CompoundName (String n, Properties syntax)
|
||||
throws InvalidNameException
|
||||
{
|
||||
elts = new Vector ();
|
||||
mySyntax = syntax;
|
||||
initializeSyntax ();
|
||||
|
||||
StringBuffer new_element = new StringBuffer ();
|
||||
int i = 0;
|
||||
// QUOTE==null means no quoting right now. When it is set it is
|
||||
// the value of the closing quote.
|
||||
String quote = null;
|
||||
while (i < n.length ())
|
||||
{
|
||||
String special = isSpecial (n, i);
|
||||
|
||||
if (special == escape && escape != null)
|
||||
{
|
||||
if (n.length () == i + special.length ())
|
||||
{
|
||||
// A trailing escape is treated as itself.
|
||||
new_element.append (special);
|
||||
i += special.length ();
|
||||
}
|
||||
else
|
||||
{
|
||||
String eSpecial = isSpecial (n, i + special.length ());
|
||||
if (eSpecial != null)
|
||||
{
|
||||
// Treat the escape as an escape.
|
||||
new_element.append (eSpecial);
|
||||
i += special.length () + eSpecial.length ();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Treat the escape as itself.
|
||||
new_element.append (special);
|
||||
i += special.length ();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else if (quote != null)
|
||||
{
|
||||
// It is safe to use == here.
|
||||
if (quote == special)
|
||||
{
|
||||
// Quotes must surround a complete component.
|
||||
if (i + quote.length () < n.length ()
|
||||
&& ! n.startsWith (separator, i + quote.length ()))
|
||||
throw new InvalidNameException ("close quote before end of component");
|
||||
elts.add (new_element.toString ());
|
||||
new_element.setLength (0);
|
||||
i += quote.length ();
|
||||
quote = null;
|
||||
continue;
|
||||
}
|
||||
// Otherwise, fall through.
|
||||
}
|
||||
// Quotes are only special at the start of a component.
|
||||
else if (new_element.length () == 0 && special == beginQuote)
|
||||
{
|
||||
quote = endQuote;
|
||||
i += special.length ();
|
||||
continue;
|
||||
}
|
||||
else if (new_element.length () == 0 && special == beginQuote2)
|
||||
{
|
||||
quote = endQuote2;
|
||||
i += special.length ();
|
||||
continue;
|
||||
}
|
||||
else if (special == separator)
|
||||
{
|
||||
elts.add (new_element.toString ());
|
||||
new_element.setLength (0);
|
||||
i += special.length ();
|
||||
continue;
|
||||
}
|
||||
|
||||
// Nothing in particular, so try the next character.
|
||||
new_element.append (n.charAt (i));
|
||||
++i;
|
||||
}
|
||||
|
||||
if (new_element.length () != 0)
|
||||
elts.add (new_element.toString ());
|
||||
|
||||
if (direction == RIGHT_TO_LEFT)
|
||||
{
|
||||
// Reverse the order of the elements.
|
||||
int len = elts.size ();
|
||||
for (i = 0; i < len / 2; ++i)
|
||||
{
|
||||
Object t = elts.set (i, elts.get (len - i - 1));
|
||||
elts.set (len - i - 1, t);
|
||||
}
|
||||
}
|
||||
|
||||
// Error checking.
|
||||
if (quote != null)
|
||||
throw new InvalidNameException ("unterminated quote");
|
||||
}
|
||||
|
||||
public Name add (int posn, String comp) throws InvalidNameException
|
||||
{
|
||||
elts.add (posn, comp);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Name add (String comp) throws InvalidNameException
|
||||
{
|
||||
elts.add (comp);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Name addAll (int posn, Name n) throws InvalidNameException
|
||||
{
|
||||
Enumeration e = n.getAll ();
|
||||
try
|
||||
{
|
||||
while (e.hasMoreElements ())
|
||||
{
|
||||
elts.add (posn, e.nextElement ());
|
||||
++posn;
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException ignore)
|
||||
{
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Name addAll (Name suffix) throws InvalidNameException
|
||||
{
|
||||
Enumeration e = suffix.getAll ();
|
||||
try
|
||||
{
|
||||
while (e.hasMoreElements ())
|
||||
elts.add (e.nextElement ());
|
||||
}
|
||||
catch (NoSuchElementException ignore)
|
||||
{
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public Object clone ()
|
||||
{
|
||||
return new CompoundName (elts.elements (), mySyntax);
|
||||
}
|
||||
|
||||
public int compareTo (Object obj)
|
||||
{
|
||||
if (obj == null || ! (obj instanceof CompoundName))
|
||||
throw new ClassCastException ("CompoundName.compareTo() expected CompoundName");
|
||||
CompoundName cn = (CompoundName) obj;
|
||||
int last = Math.min (cn.elts.size (), elts.size ());
|
||||
for (int i = 0; i < last; ++i)
|
||||
{
|
||||
String f = canonicalize ((String) elts.get (i));
|
||||
int comp = f.compareTo (canonicalize ((String) cn.elts.get (i)));
|
||||
if (comp != 0)
|
||||
return comp;
|
||||
}
|
||||
return elts.size () - cn.elts.size ();
|
||||
}
|
||||
|
||||
public boolean endsWith (Name n)
|
||||
{
|
||||
if (! (n instanceof CompoundName))
|
||||
return false;
|
||||
CompoundName cn = (CompoundName) n;
|
||||
if (cn.elts.size () > elts.size ())
|
||||
return false;
|
||||
int delta = elts.size () - cn.elts.size ();
|
||||
for (int i = 0; i < cn.elts.size (); ++i)
|
||||
{
|
||||
String f = canonicalize ((String) elts.get (i));
|
||||
if (! f.equals (canonicalize ((String) cn.elts.get (i))))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof CompoundName))
|
||||
return false;
|
||||
return compareTo (obj) == 0;
|
||||
}
|
||||
|
||||
public String get (int posn)
|
||||
{
|
||||
return (String) elts.get (posn);
|
||||
}
|
||||
|
||||
public Enumeration getAll ()
|
||||
{
|
||||
return elts.elements ();
|
||||
}
|
||||
|
||||
public Name getPrefix (int posn)
|
||||
{
|
||||
CompoundName cn = new CompoundName (mySyntax);
|
||||
for (int i = 0; i < posn; ++i)
|
||||
cn.elts.add (elts.get (i));
|
||||
return cn;
|
||||
}
|
||||
|
||||
public Name getSuffix (int posn)
|
||||
{
|
||||
if (posn > elts.size ())
|
||||
throw new ArrayIndexOutOfBoundsException (posn);
|
||||
CompoundName cn = new CompoundName (mySyntax);
|
||||
for (int i = posn; i < elts.size (); ++i)
|
||||
cn.elts.add (elts.get (i));
|
||||
return cn;
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
int h = 0;
|
||||
for (int i = 0; i < elts.size (); ++i)
|
||||
h += canonicalize ((String) elts.get (i)).hashCode ();
|
||||
return h;
|
||||
}
|
||||
|
||||
public boolean isEmpty ()
|
||||
{
|
||||
return elts.isEmpty ();
|
||||
}
|
||||
|
||||
public Object remove (int posn) throws InvalidNameException
|
||||
{
|
||||
return elts.remove (posn);
|
||||
}
|
||||
|
||||
public int size ()
|
||||
{
|
||||
return elts.size ();
|
||||
}
|
||||
|
||||
public boolean startsWith (Name n)
|
||||
{
|
||||
if (! (n instanceof CompoundName))
|
||||
return false;
|
||||
CompoundName cn = (CompoundName) n;
|
||||
if (cn.elts.size () > elts.size ())
|
||||
return false;
|
||||
for (int i = 0; i < cn.elts.size (); ++i)
|
||||
{
|
||||
String f = canonicalize ((String) elts.get (i));
|
||||
if (! f.equals (canonicalize ((String) cn.elts.get (i))))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If ELEMENT starts with some meta-sequence at OFFSET, then return
|
||||
// the string representing the meta-sequence. Otherwise return
|
||||
// null.
|
||||
private String isSpecial (String element, int offset)
|
||||
{
|
||||
String special = null;
|
||||
if (separator != null && element.startsWith (separator, offset))
|
||||
special = separator;
|
||||
else if (escape != null && element.startsWith (escape, offset))
|
||||
special = escape;
|
||||
else if (beginQuote != null && element.startsWith (beginQuote, offset))
|
||||
special = beginQuote;
|
||||
else if (endQuote != null && element.startsWith (endQuote, offset))
|
||||
special = endQuote;
|
||||
else if (beginQuote2 != null
|
||||
&& element.startsWith (beginQuote2, offset))
|
||||
special = beginQuote2;
|
||||
else if (endQuote2 != null && element.startsWith (endQuote2, offset))
|
||||
special = endQuote2;
|
||||
|
||||
return special;
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
StringBuffer result = new StringBuffer ();
|
||||
int size = elts.size ();
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
// Find the appropriate element. FIXME: not clear what FLAT
|
||||
// means.
|
||||
int offset = (direction == RIGHT_TO_LEFT) ? (size - i - 1) : i;
|
||||
String element = (String) elts.get (offset);
|
||||
if (i > 0
|
||||
|| (i == size - 1 && element.equals ("")))
|
||||
result.append (separator);
|
||||
|
||||
int k = 0;
|
||||
while (k < element.length ())
|
||||
{
|
||||
String special = isSpecial (element, k);
|
||||
if (special != null)
|
||||
{
|
||||
result.append (escape);
|
||||
result.append (special);
|
||||
k += special.length ();
|
||||
}
|
||||
else
|
||||
{
|
||||
result.append (element.charAt (k));
|
||||
++k;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result.toString ();
|
||||
}
|
||||
|
||||
// This canonicalizes a String, based on the syntax, for comparison
|
||||
// or other similar purposes.
|
||||
private String canonicalize (String element)
|
||||
{
|
||||
String ret = element;
|
||||
|
||||
if (ignoreCase)
|
||||
ret = ret.toLowerCase ();
|
||||
|
||||
if (trimBlanks)
|
||||
{
|
||||
int first = 0;
|
||||
while (first < ret.length ()
|
||||
&& Character.isWhitespace (ret.charAt (first)))
|
||||
++first;
|
||||
|
||||
int last = ret.length () - 1;
|
||||
while (last >= first
|
||||
&& Character.isWhitespace (ret.charAt (last)))
|
||||
--last;
|
||||
|
||||
ret = ret.substring (first, last);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// This initializes all the syntax variables. This seems easier
|
||||
// than re-querying the properties every time. We're allowed to do
|
||||
// this because the spec says that subclasses should consider the
|
||||
// syntax as being read-only.
|
||||
private void initializeSyntax ()
|
||||
{
|
||||
String t = mySyntax.getProperty ("jndi.syntax.direction", "flat");
|
||||
if (t.equals ("right_to_left"))
|
||||
this.direction = RIGHT_TO_LEFT;
|
||||
else if (t.equals ("left_to_right"))
|
||||
this.direction = LEFT_TO_RIGHT;
|
||||
else
|
||||
{
|
||||
// If we don't recognize it, default to flat.
|
||||
this.direction = FLAT;
|
||||
}
|
||||
|
||||
// This is required unless the direction is FLAT. Unfortunately
|
||||
// there is no way to report this error.
|
||||
this.separator = mySyntax.getProperty ("jndi.syntax.separator", "");
|
||||
|
||||
this.ignoreCase
|
||||
= Boolean.valueOf (mySyntax.getProperty ("jndi.syntax.ignorecase",
|
||||
"false")).booleanValue ();
|
||||
this.escape = mySyntax.getProperty ("jndi.syntax.escape", null);
|
||||
this.beginQuote = mySyntax.getProperty ("jndi.syntax.beginquote", null);
|
||||
this.endQuote = mySyntax.getProperty ("jndi.syntax.endquote",
|
||||
this.beginQuote);
|
||||
this.beginQuote2 = mySyntax.getProperty ("jndi.syntax.beginquote2",
|
||||
null);
|
||||
this.endQuote2 = mySyntax.getProperty ("jndi.syntax.endquote2",
|
||||
this.beginQuote2);
|
||||
this.trimBlanks
|
||||
= Boolean.valueOf (mySyntax.getProperty ("jndi.syntax.trimblanks",
|
||||
"false")).booleanValue ();
|
||||
}
|
||||
|
||||
// The spec specifies this but does not document it in any way (it
|
||||
// is a package-private class). It is useless as far as I can tell.
|
||||
// So we ignore it.
|
||||
// protected transient NameImpl impl;
|
||||
protected transient Properties mySyntax;
|
||||
|
||||
// The actual elements.
|
||||
private transient Vector elts;
|
||||
|
||||
// The following are all used for syntax.
|
||||
private transient int direction;
|
||||
private transient String separator;
|
||||
private transient boolean ignoreCase;
|
||||
private transient String escape;
|
||||
private transient String beginQuote;
|
||||
private transient String endQuote;
|
||||
private transient String beginQuote2;
|
||||
private transient String endQuote2;
|
||||
private transient boolean trimBlanks;
|
||||
// We didn't need these for parsing, so they are gone.
|
||||
// private transient String avaSeparator;
|
||||
// private transient String typevalSeparator;
|
||||
|
||||
private static final int RIGHT_TO_LEFT = -1;
|
||||
private static final int LEFT_TO_RIGHT = 1;
|
||||
private static final int FLAT = 0;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -10,8 +10,19 @@ package javax.naming;
|
|||
|
||||
import java.lang.Exception;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 14, 2001
|
||||
*/
|
||||
|
||||
public class LinkException extends NamingException
|
||||
{
|
||||
// Serialized fields.
|
||||
protected Name linkResolvedName;
|
||||
protected Object linkResolvedObj;
|
||||
protected Name linkRemainingName;
|
||||
protected String linkExplanation;
|
||||
|
||||
public LinkException ()
|
||||
{
|
||||
super ();
|
||||
|
@ -21,4 +32,57 @@ public class LinkException extends NamingException
|
|||
{
|
||||
super (msg);
|
||||
}
|
||||
|
||||
public Name getLinkResolvedName()
|
||||
{
|
||||
return linkResolvedName;
|
||||
}
|
||||
|
||||
public Name getLinkRemainingName()
|
||||
{
|
||||
return linkRemainingName;
|
||||
}
|
||||
|
||||
public Object getLinkResolvedObj()
|
||||
{
|
||||
return linkResolvedObj;
|
||||
}
|
||||
|
||||
public String getLinkExplanation()
|
||||
{
|
||||
return linkExplanation;
|
||||
}
|
||||
|
||||
public void setLinkExplanation(String msg)
|
||||
{
|
||||
linkExplanation = msg;
|
||||
}
|
||||
|
||||
public void setLinkResolvedName(Name name)
|
||||
{
|
||||
linkResolvedName = (Name) name.clone();
|
||||
}
|
||||
|
||||
public void setLinkRemainingName(Name name)
|
||||
{
|
||||
linkRemainingName = (Name) name.clone();
|
||||
}
|
||||
|
||||
public void setLinkResolvedObj(Object obj)
|
||||
{
|
||||
linkResolvedObj = obj;
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
return super.toString () + "; " + linkRemainingName.toString ();
|
||||
}
|
||||
|
||||
public String toString (boolean detail)
|
||||
{
|
||||
String r = super.toString (detail) + "; " + linkRemainingName.toString ();
|
||||
if (detail)
|
||||
r += "; " + linkResolvedObj.toString ();
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
|
35
libjava/javax/naming/LinkRef.java
Normal file
35
libjava/javax/naming/LinkRef.java
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date May 16, 2001
|
||||
*/
|
||||
public class LinkRef extends Reference
|
||||
{
|
||||
public LinkRef (Name name)
|
||||
{
|
||||
this (name.toString ());
|
||||
}
|
||||
|
||||
public LinkRef (String name)
|
||||
{
|
||||
// FIXME: javax.naming.LinkRef?
|
||||
super ("LinkRef", new StringRefAddr ("LinkAddress", name));
|
||||
}
|
||||
|
||||
public String getLinkName ()
|
||||
{
|
||||
StringRefAddr sra = (StringRefAddr) get (0);
|
||||
return (String) sra.getContent ();
|
||||
}
|
||||
}
|
71
libjava/javax/naming/NameClassPair.java
Normal file
71
libjava/javax/naming/NameClassPair.java
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date May 16, 2001
|
||||
*/
|
||||
public class NameClassPair implements Serializable
|
||||
{
|
||||
public NameClassPair (String name, String className)
|
||||
{
|
||||
this (name, className, true);
|
||||
}
|
||||
|
||||
public NameClassPair (String name, String className, boolean isRelative)
|
||||
{
|
||||
this.name = name;
|
||||
this.className = className;
|
||||
this.isRel = isRelative;
|
||||
}
|
||||
|
||||
public String getClassName ()
|
||||
{
|
||||
return className;
|
||||
}
|
||||
|
||||
public String getName ()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isRelative ()
|
||||
{
|
||||
return isRel;
|
||||
}
|
||||
|
||||
public void setClassName (String name)
|
||||
{
|
||||
this.className = name;
|
||||
}
|
||||
|
||||
public void setName (String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public void setRelative (boolean r)
|
||||
{
|
||||
this.isRel = r;
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
// Specified by class documentation.
|
||||
return name + ":" + className;
|
||||
}
|
||||
|
||||
// These field names are fixed by the serialization spec.
|
||||
private String name;
|
||||
private String className;
|
||||
private boolean isRel;
|
||||
}
|
|
@ -60,9 +60,9 @@ public abstract class RefAddr implements Serializable
|
|||
*/
|
||||
protected RefAddr(String addrType)
|
||||
{
|
||||
if (addrType == null)
|
||||
throw new NullPointerException("addrType cannot be null");
|
||||
|
||||
if (addrType == null)
|
||||
throw new NullPointerException("addrType cannot be null");
|
||||
|
||||
this.addrType = addrType;
|
||||
}
|
||||
|
||||
|
@ -87,20 +87,20 @@ public abstract class RefAddr implements Serializable
|
|||
* is the same as this addrType and the content is equals to the
|
||||
* content of this object.
|
||||
*/
|
||||
public boolean equal(Object o)
|
||||
public boolean equals (Object o)
|
||||
{
|
||||
if (o instanceof RefAddr)
|
||||
{
|
||||
RefAddr refAddr = (RefAddr) o;
|
||||
if (this.getType().equals(refAddr.getType()))
|
||||
{
|
||||
Object c1 = this.getContent();
|
||||
Object c2 = refAddr.getContent();
|
||||
if (c1 == null)
|
||||
return c2 == null;
|
||||
else
|
||||
return c1.equals(c2);
|
||||
}
|
||||
{
|
||||
Object c1 = this.getContent();
|
||||
Object c2 = refAddr.getContent();
|
||||
if (c1 == null)
|
||||
return c2 == null;
|
||||
else
|
||||
return c1.equals(c2);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -9,22 +9,105 @@ details. */
|
|||
package javax.naming;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date May 16, 2001
|
||||
*/
|
||||
public class Reference implements Cloneable, Serializable
|
||||
{
|
||||
public Reference (String className)
|
||||
{
|
||||
this.className = className;
|
||||
addrs = new Vector ();
|
||||
}
|
||||
|
||||
public Reference (String className, RefAddr addr)
|
||||
{
|
||||
this.className = className;
|
||||
addrs = new Vector ();
|
||||
addrs.add (addr);
|
||||
}
|
||||
|
||||
public Reference (String className, String factory, String factoryLocation)
|
||||
{
|
||||
this.className = className;
|
||||
this.classFactory = factory;
|
||||
this.classFactoryLocation = factoryLocation;
|
||||
addrs = new Vector ();
|
||||
}
|
||||
|
||||
void add (RefAddr addr)
|
||||
public Reference (String className, RefAddr addr,
|
||||
String factory, String factoryLocation)
|
||||
{
|
||||
throw new Error ("javax.naming.Reference.add not implemented");
|
||||
this.className = className;
|
||||
this.classFactory = factory;
|
||||
this.classFactoryLocation = factoryLocation;
|
||||
addrs = new Vector ();
|
||||
addrs.add (addr);
|
||||
}
|
||||
|
||||
RefAddr get (String addrType)
|
||||
public void add (int posn, RefAddr addr)
|
||||
{
|
||||
throw new Error ("javax.naming.Reference.get not implemented");
|
||||
addrs.add (posn, addr);
|
||||
}
|
||||
|
||||
public void add (RefAddr addr)
|
||||
{
|
||||
addrs.add (addr);
|
||||
}
|
||||
|
||||
public void clear ()
|
||||
{
|
||||
addrs.clear ();
|
||||
}
|
||||
|
||||
public Object clone ()
|
||||
{
|
||||
Reference r = new Reference (className, classFactory,
|
||||
classFactoryLocation);
|
||||
r.addrs = (Vector) addrs.clone ();
|
||||
return r;
|
||||
}
|
||||
|
||||
// Convenience function.
|
||||
private boolean equals (String a, String b)
|
||||
{
|
||||
return (a == null) ? (b == null) : a.equals (b);
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof Reference))
|
||||
return false;
|
||||
Reference r = (Reference) obj;
|
||||
return (equals (classFactory, r.classFactory)
|
||||
&& equals (classFactoryLocation, r.classFactoryLocation)
|
||||
&& equals (className, r.className)
|
||||
&& addrs.equals (r.addrs));
|
||||
}
|
||||
|
||||
public RefAddr get (int posn)
|
||||
{
|
||||
return (RefAddr) addrs.get (posn);
|
||||
}
|
||||
|
||||
public RefAddr get (String addrType)
|
||||
{
|
||||
for (int i = 0; i < addrs.size (); ++i)
|
||||
{
|
||||
RefAddr r = (RefAddr) addrs.get (i);
|
||||
if (addrType.equals (r.getType ()))
|
||||
return r;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Enumeration getAll ()
|
||||
{
|
||||
return addrs.elements ();
|
||||
}
|
||||
|
||||
public String getClassName ()
|
||||
|
@ -32,5 +115,50 @@ public class Reference implements Cloneable, Serializable
|
|||
return className;
|
||||
}
|
||||
|
||||
private String className;
|
||||
public String getFactoryClassLocation ()
|
||||
{
|
||||
return classFactoryLocation;
|
||||
}
|
||||
|
||||
public String getFactoryClassName ()
|
||||
{
|
||||
return classFactory;
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
// The spec says the hash code is the sum of the hash codes of the
|
||||
// addresses. It does not mention the other fields.
|
||||
int h = 0;
|
||||
for (int i = 0; i < addrs.size (); ++i)
|
||||
h += addrs.get (i).hashCode ();
|
||||
return h;
|
||||
}
|
||||
|
||||
public Object remove (int posn)
|
||||
{
|
||||
return addrs.remove (posn);
|
||||
}
|
||||
|
||||
public int size ()
|
||||
{
|
||||
return addrs.size ();
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
String x = getClass ().toString () + "[";
|
||||
for (int i = 0; i < addrs.size (); ++i)
|
||||
{
|
||||
if (i > 0)
|
||||
x += ",";
|
||||
x += addrs.get (i).toString ();
|
||||
}
|
||||
return x + "]";
|
||||
}
|
||||
|
||||
protected Vector addrs;
|
||||
protected String classFactory;
|
||||
protected String classFactoryLocation;
|
||||
protected String className;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -9,16 +9,29 @@ details. */
|
|||
package javax.naming;
|
||||
|
||||
import java.lang.Exception;
|
||||
import java.util.Hashtable;
|
||||
|
||||
public class ReferralException extends NamingException
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 14, 2001
|
||||
*/
|
||||
|
||||
public abstract class ReferralException extends NamingException
|
||||
{
|
||||
public ReferralException ()
|
||||
protected ReferralException ()
|
||||
{
|
||||
super ();
|
||||
}
|
||||
|
||||
public ReferralException (String msg)
|
||||
protected ReferralException (String msg)
|
||||
{
|
||||
super (msg);
|
||||
}
|
||||
|
||||
public abstract Object getReferralInfo();
|
||||
public abstract Context getReferralContext() throws NamingException;
|
||||
public abstract Context getReferralContext(Hashtable env)
|
||||
throws NamingException;
|
||||
public abstract boolean skipReferral();
|
||||
public abstract void retryReferral();
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -11,10 +11,30 @@ package javax.naming.directory;
|
|||
import javax.naming.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 14, 2001
|
||||
*/
|
||||
|
||||
public interface Attribute extends Cloneable, Serializable
|
||||
{
|
||||
// FIXME
|
||||
// FIXME: Need to set value from JNDI 1.1.1 fro interoperability.
|
||||
// public static final long serialVersionUID = ;
|
||||
|
||||
NamingEnumeration getAll ();
|
||||
public NamingEnumeration getAll() throws NamingException;
|
||||
public Object get() throws NamingException;
|
||||
public int size();
|
||||
public String getID();
|
||||
public boolean contains(Object attrVal);
|
||||
public boolean add(Object attrVal);
|
||||
public boolean remove(Object attrval);
|
||||
public void clear();
|
||||
public DirContext getAttributeSyntaxDefinition() throws NamingException;
|
||||
public DirContext getAttributeDefinition() throws NamingException;
|
||||
public Object clone();
|
||||
public boolean isOrdered();
|
||||
public Object get(int ix) throws NamingException;
|
||||
public Object remove(int ix);
|
||||
public void add(int ix, Object attrVal);
|
||||
public Object set(int ix, Object attrVal);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class AttributeInUseException extends NamingException
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,12 +6,20 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 14, 2001
|
||||
*/
|
||||
|
||||
public class AttributeModificationException extends NamingException
|
||||
{
|
||||
// Serialized fields.
|
||||
private ModificationItem[] unexecs;
|
||||
|
||||
public AttributeModificationException ()
|
||||
{
|
||||
super ();
|
||||
|
@ -21,4 +29,19 @@ public class AttributeModificationException extends NamingException
|
|||
{
|
||||
super (msg);
|
||||
}
|
||||
|
||||
public void setUnexecutedModifications(ModificationItem[] e)
|
||||
{
|
||||
unexecs = e;
|
||||
}
|
||||
|
||||
public ModificationItem[] getUnexecutedModifications()
|
||||
{
|
||||
return unexecs;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return super.toString () + ": " + unexecs[0].toString ();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -11,10 +11,21 @@ package javax.naming.directory;
|
|||
import javax.naming.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 14, 2001
|
||||
*/
|
||||
|
||||
public interface Attributes extends Cloneable, Serializable
|
||||
{
|
||||
// FIXME
|
||||
|
||||
NamingEnumeration getAll ();
|
||||
public boolean isCaseIgnored();
|
||||
public int size();
|
||||
public Attribute get(String attrID);
|
||||
public NamingEnumeration getAll();
|
||||
public NamingEnumeration getIDs();
|
||||
public Attribute put(String attrID, Object val);
|
||||
public Attribute put(Attribute attr);
|
||||
public Attribute remove(String attrID);
|
||||
public Object clone();
|
||||
}
|
||||
|
||||
|
|
298
libjava/javax/naming/directory/BasicAttribute.java
Normal file
298
libjava/javax/naming/directory/BasicAttribute.java
Normal file
|
@ -0,0 +1,298 @@
|
|||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.directory;
|
||||
|
||||
import javax.naming.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date June 20, 2001
|
||||
*/
|
||||
public class BasicAttribute implements Attribute
|
||||
{
|
||||
/** The ID of this attribute. */
|
||||
protected String attrID;
|
||||
/** True if this attribute's values are ordered. */
|
||||
protected boolean ordered;
|
||||
/** Values for this attribute. */
|
||||
protected transient Vector values;
|
||||
|
||||
// Used by cloning.
|
||||
private BasicAttribute ()
|
||||
{
|
||||
}
|
||||
|
||||
public BasicAttribute (String id)
|
||||
{
|
||||
this (id, false);
|
||||
}
|
||||
|
||||
public BasicAttribute (String id, boolean ordered)
|
||||
{
|
||||
attrID = id;
|
||||
this.ordered = ordered;
|
||||
values = new Vector ();
|
||||
}
|
||||
|
||||
public BasicAttribute (String id, Object value)
|
||||
{
|
||||
this (id, value, false);
|
||||
}
|
||||
|
||||
public BasicAttribute (String id, Object value, boolean ordered)
|
||||
{
|
||||
attrID = id;
|
||||
this.ordered = ordered;
|
||||
values = new Vector ();
|
||||
values.add (value);
|
||||
}
|
||||
|
||||
public void add (int index, Object val)
|
||||
{
|
||||
if (! ordered && contains (val))
|
||||
throw new IllegalStateException ("value already in attribute");
|
||||
values.add (index, val);
|
||||
}
|
||||
|
||||
public boolean add (Object val)
|
||||
{
|
||||
if (! ordered && contains (val))
|
||||
throw new IllegalStateException ("value already in attribute");
|
||||
return values.add (val);
|
||||
}
|
||||
|
||||
public void clear ()
|
||||
{
|
||||
values.clear ();
|
||||
}
|
||||
|
||||
public Object clone ()
|
||||
{
|
||||
BasicAttribute c = new BasicAttribute ();
|
||||
c.attrID = attrID;
|
||||
c.ordered = ordered;
|
||||
c.values = (Vector) values.clone ();
|
||||
return c;
|
||||
}
|
||||
|
||||
public boolean contains (Object val)
|
||||
{
|
||||
for (int i = 0; i < values.size (); ++i)
|
||||
{
|
||||
if (equals (val, values.get (i)))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof BasicAttribute))
|
||||
return false;
|
||||
BasicAttribute b = (BasicAttribute) obj;
|
||||
|
||||
if (ordered != b.ordered
|
||||
|| ! attrID.equals (b.attrID)
|
||||
|| values.size () != b.values.size ())
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < values.size (); ++i)
|
||||
{
|
||||
boolean ok = false;
|
||||
if (ordered)
|
||||
ok = equals (values.get (i), b.values.get (i));
|
||||
else
|
||||
{
|
||||
for (int j = 0; j < b.values.size (); ++j)
|
||||
{
|
||||
if (equals (values.get (i), b.values.get (j)))
|
||||
{
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! ok)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public Object get ()
|
||||
{
|
||||
if (values.size () == 0)
|
||||
throw new NoSuchElementException ("no values");
|
||||
return get (0);
|
||||
}
|
||||
|
||||
public Object get (int index)
|
||||
{
|
||||
return values.get (index);
|
||||
}
|
||||
|
||||
public NamingEnumeration getAll ()
|
||||
{
|
||||
return new BasicAttributeEnumeration ();
|
||||
}
|
||||
|
||||
public DirContext getAttributeDefinition ()
|
||||
throws OperationNotSupportedException, NamingException
|
||||
{
|
||||
throw new OperationNotSupportedException ();
|
||||
}
|
||||
|
||||
public DirContext getAttributeSyntaxDefinition ()
|
||||
throws OperationNotSupportedException, NamingException
|
||||
{
|
||||
throw new OperationNotSupportedException ();
|
||||
}
|
||||
|
||||
public String getID ()
|
||||
{
|
||||
return attrID;
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
int val = attrID.hashCode ();
|
||||
for (int i = 0; i < values.size (); ++i)
|
||||
{
|
||||
Object o = values.get (i);
|
||||
if (o == null)
|
||||
{
|
||||
// Nothing.
|
||||
}
|
||||
else if (o instanceof Object[])
|
||||
{
|
||||
Object[] a = (Object[]) o;
|
||||
for (int j = 0; j < a.length; ++j)
|
||||
val += a[j].hashCode ();
|
||||
}
|
||||
else
|
||||
val += o.hashCode ();
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
public boolean isOrdered ()
|
||||
{
|
||||
return ordered;
|
||||
}
|
||||
|
||||
public Object remove (int index)
|
||||
{
|
||||
return values.remove (index);
|
||||
}
|
||||
|
||||
public boolean remove (Object val)
|
||||
{
|
||||
for (int i = 0; i < values.size (); ++i)
|
||||
{
|
||||
if (equals (val, values.get (i)))
|
||||
{
|
||||
values.remove (i);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public Object set (int index, Object val)
|
||||
{
|
||||
if (! ordered && contains (val))
|
||||
throw new IllegalStateException ("value already in attribute");
|
||||
return values.set (index, val);
|
||||
}
|
||||
|
||||
public int size ()
|
||||
{
|
||||
return values.size ();
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
String r = attrID;
|
||||
for (int i = 0; i < values.size (); ++i)
|
||||
r += ";" + values.get (i).toString ();
|
||||
return r;
|
||||
}
|
||||
|
||||
// This is used for testing equality of two Objects according to our
|
||||
// local rules.
|
||||
private boolean equals (Object one, Object two)
|
||||
{
|
||||
if (one == null)
|
||||
return two == null;
|
||||
|
||||
if (one instanceof Object[])
|
||||
{
|
||||
if (! (two instanceof Object[]))
|
||||
return false;
|
||||
|
||||
Object[] aone = (Object[]) one;
|
||||
Object[] atwo = (Object[]) two;
|
||||
|
||||
if (aone.length != atwo.length)
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < aone.length; ++i)
|
||||
{
|
||||
if (! aone[i].equals (atwo[i]))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return one.equals (two);
|
||||
}
|
||||
|
||||
// Used when enumerating this attribute.
|
||||
private class BasicAttributeEnumeration implements NamingEnumeration
|
||||
{
|
||||
int where = -1;
|
||||
|
||||
public BasicAttributeEnumeration ()
|
||||
{
|
||||
}
|
||||
|
||||
public void close () throws NamingException
|
||||
{
|
||||
}
|
||||
|
||||
public boolean hasMore () throws NamingException
|
||||
{
|
||||
return hasMoreElements ();
|
||||
}
|
||||
|
||||
public Object next () throws NamingException
|
||||
{
|
||||
return nextElement ();
|
||||
}
|
||||
|
||||
public boolean hasMoreElements ()
|
||||
{
|
||||
return where < values.size ();
|
||||
}
|
||||
|
||||
public Object nextElement () throws NoSuchElementException
|
||||
{
|
||||
if (where + 1 >= values.size ())
|
||||
throw new NoSuchElementException ("no more elements");
|
||||
++where;
|
||||
return values.get (where);
|
||||
}
|
||||
}
|
||||
}
|
194
libjava/javax/naming/directory/BasicAttributes.java
Normal file
194
libjava/javax/naming/directory/BasicAttributes.java
Normal file
|
@ -0,0 +1,194 @@
|
|||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.directory;
|
||||
|
||||
import javax.naming.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date June 22, 2001
|
||||
*/
|
||||
public class BasicAttributes implements Attributes
|
||||
{
|
||||
public BasicAttributes ()
|
||||
{
|
||||
this (false);
|
||||
}
|
||||
|
||||
public BasicAttributes (boolean ignoreCase)
|
||||
{
|
||||
this.ignoreCase = ignoreCase;
|
||||
this.attributes = new Vector ();
|
||||
}
|
||||
|
||||
public BasicAttributes (String attrID, Object val)
|
||||
{
|
||||
this (attrID, val, false);
|
||||
}
|
||||
|
||||
public BasicAttributes (String attrID, Object val, boolean ignoreCase)
|
||||
{
|
||||
this.ignoreCase = ignoreCase;
|
||||
attributes = new Vector ();
|
||||
attributes.add (new BasicAttribute (attrID, val));
|
||||
}
|
||||
|
||||
public Object clone ()
|
||||
{
|
||||
// Slightly inefficient as we make a garbage Vector here.
|
||||
BasicAttributes ba = new BasicAttributes (ignoreCase);
|
||||
ba.attributes = (Vector) attributes.clone ();
|
||||
return ba;
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof BasicAttributes))
|
||||
return false;
|
||||
BasicAttributes b = (BasicAttributes) obj;
|
||||
if (ignoreCase != b.ignoreCase
|
||||
|| attributes.size () != b.attributes.size ())
|
||||
return false;
|
||||
|
||||
// Does order matter?
|
||||
for (int i = 0; i < attributes.size (); ++i)
|
||||
{
|
||||
if (! attributes.get (i).equals (b.attributes.get (i)))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public Attribute get (String attrID)
|
||||
{
|
||||
for (int i = 0; i < attributes.size (); ++i)
|
||||
{
|
||||
Attribute at = (Attribute) attributes.get (i);
|
||||
if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ()))
|
||||
|| (! ignoreCase && attrID.equals (at.getID ())))
|
||||
return at;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public NamingEnumeration getAll ()
|
||||
{
|
||||
return new BasicAttributesEnumeration (false);
|
||||
}
|
||||
|
||||
public NamingEnumeration getIDs ()
|
||||
{
|
||||
return new BasicAttributesEnumeration (true);
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
int val = 0;
|
||||
for (int i = 0; i < attributes.size (); ++i)
|
||||
val += attributes.get (i).hashCode ();
|
||||
return val;
|
||||
}
|
||||
|
||||
public boolean isCaseIgnored ()
|
||||
{
|
||||
return ignoreCase;
|
||||
}
|
||||
|
||||
public Attribute put (Attribute attr)
|
||||
{
|
||||
Attribute r = remove (attr.getID ());
|
||||
attributes.add (attr);
|
||||
return r;
|
||||
}
|
||||
|
||||
public Attribute put (String attrID, Object val)
|
||||
{
|
||||
return put (new BasicAttribute (attrID, val));
|
||||
}
|
||||
|
||||
public Attribute remove (String attrID)
|
||||
{
|
||||
for (int i = 0; i < attributes.size (); ++i)
|
||||
{
|
||||
Attribute at = (Attribute) attributes.get (i);
|
||||
if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ()))
|
||||
|| (! ignoreCase && attrID.equals (at.getID ())))
|
||||
{
|
||||
attributes.remove (i);
|
||||
return at;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public int size ()
|
||||
{
|
||||
return attributes.size ();
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
String r = "";
|
||||
for (int i = 0; i < attributes.size (); ++i)
|
||||
{
|
||||
if (i > 0)
|
||||
r += "; ";
|
||||
r += attributes.get (i).toString ();
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
// This is set by the serialization spec.
|
||||
private boolean ignoreCase;
|
||||
private transient Vector attributes;
|
||||
|
||||
// Used when enumerating.
|
||||
private class BasicAttributesEnumeration implements NamingEnumeration
|
||||
{
|
||||
int where = -1;
|
||||
boolean id;
|
||||
|
||||
public BasicAttributesEnumeration (boolean id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public void close () throws NamingException
|
||||
{
|
||||
}
|
||||
|
||||
public boolean hasMore () throws NamingException
|
||||
{
|
||||
return hasMoreElements ();
|
||||
}
|
||||
|
||||
public Object next () throws NamingException
|
||||
{
|
||||
return nextElement ();
|
||||
}
|
||||
|
||||
public boolean hasMoreElements ()
|
||||
{
|
||||
return where < attributes.size ();
|
||||
}
|
||||
|
||||
public Object nextElement () throws NoSuchElementException
|
||||
{
|
||||
if (where + 1 >= attributes.size ())
|
||||
throw new NoSuchElementException ("no more elements");
|
||||
++where;
|
||||
Attribute at = (Attribute) attributes.get (where);
|
||||
return id ? (Object) at.getID () : (Object) at;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -10,9 +10,41 @@ package javax.naming.directory;
|
|||
|
||||
import javax.naming.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 13, 2001
|
||||
*/
|
||||
|
||||
public interface DirContext extends Context
|
||||
{
|
||||
public Attributes getAttributes (String name);
|
||||
public Attributes getAttributes (String name, String[] attrIds);
|
||||
}
|
||||
public static final int ADD_ATTRIBUTE = 1;
|
||||
public static final int REPLACE_ATTRIBUTE = 2;
|
||||
public static final int REMOVE_ATTRIBUTE = 3;
|
||||
|
||||
public Attributes getAttributes (String name) throws NamingException;
|
||||
public Attributes getAttributes (String name, String[] attrIds) throws NamingException;
|
||||
public Attributes getAttributes (Name name) throws NamingException;
|
||||
public Attributes getAttributes(Name name, String[] attrIds) throws NamingException;
|
||||
public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException;
|
||||
public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException;
|
||||
public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException;
|
||||
public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException;
|
||||
public void bind(Name name, Object obj, Attributes attrs) throws NamingException;
|
||||
public void bind(String name, Object obj, Attributes attrs) throws NamingException;
|
||||
public void rebind(Name name, Object obj, Attributes attrs) throws NamingException;
|
||||
public void rebind(String name, Object obj, Attributes attrs) throws NamingException;
|
||||
public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException;
|
||||
public DirContext createSubcontext(String name, Attributes attrs) throws NamingException;
|
||||
public DirContext getSchema(Name name) throws NamingException;
|
||||
public DirContext getSchema(String name) throws NamingException;
|
||||
public DirContext getSchemaClassDefinition(Name name) throws NamingException;
|
||||
public DirContext getSchemaClassDefinition(String name) throws NamingException;
|
||||
public NamingEnumeration search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException;
|
||||
public NamingEnumeration search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException;
|
||||
public NamingEnumeration search(Name name, Attributes matchingAttributes) throws NamingException;
|
||||
public NamingEnumeration search(String name, Attributes matchingAttributes) throws NamingException;
|
||||
public NamingEnumeration search(Name name, String filter, SearchControls cons) throws NamingException;
|
||||
public NamingEnumeration search(String name, String filter, SearchControls cons) throws NamingException;
|
||||
public NamingEnumeration search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException;
|
||||
public NamingEnumeration search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -11,20 +11,218 @@ package javax.naming.directory;
|
|||
import javax.naming.*;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date June 25, 2001
|
||||
*/
|
||||
public class InitialDirContext extends InitialContext implements DirContext
|
||||
{
|
||||
public InitialDirContext (Hashtable environment)
|
||||
public InitialDirContext ()
|
||||
throws NamingException
|
||||
{
|
||||
throw new Error ("javax.naming.directory.InitialDirContext not implemented");
|
||||
this (null);
|
||||
}
|
||||
|
||||
protected InitialDirContext (boolean lazy)
|
||||
throws NamingException
|
||||
{
|
||||
super (lazy);
|
||||
}
|
||||
|
||||
public InitialDirContext (Hashtable environment)
|
||||
throws NamingException
|
||||
{
|
||||
super (environment);
|
||||
}
|
||||
|
||||
// The InitialContext docs suggest that this exist. And it does
|
||||
// seem like a good idea. but the InitialDirContext docs indicate
|
||||
// it cannot be non-private.
|
||||
private DirContext getURLOrDefaultInitDirCtx (Name name)
|
||||
throws NamingException
|
||||
{
|
||||
Context c = getURLOrDefaultInitCtx (name);
|
||||
if (c == null)
|
||||
throw new NoInitialContextException ();
|
||||
else if (! (c instanceof DirContext))
|
||||
throw new NotContextException ();
|
||||
return (DirContext) c;
|
||||
}
|
||||
|
||||
private DirContext getURLOrDefaultInitDirCtx (String name)
|
||||
throws NamingException
|
||||
{
|
||||
Context c = getURLOrDefaultInitCtx (name);
|
||||
if (c == null)
|
||||
throw new NoInitialContextException ();
|
||||
else if (! (c instanceof DirContext))
|
||||
throw new NotContextException ();
|
||||
return (DirContext) c;
|
||||
}
|
||||
|
||||
public Attributes getAttributes (String name)
|
||||
throws NamingException
|
||||
{
|
||||
throw new Error ("getAttributes not implemented");
|
||||
return getURLOrDefaultInitDirCtx (name).getAttributes (name);
|
||||
}
|
||||
|
||||
public Attributes getAttributes (String name, String[] attrIds)
|
||||
throws NamingException
|
||||
{
|
||||
throw new Error ("getAttributes not implemented");
|
||||
return getURLOrDefaultInitDirCtx (name).getAttributes (name, attrIds);
|
||||
}
|
||||
|
||||
public Attributes getAttributes (Name name)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).getAttributes (name);
|
||||
}
|
||||
|
||||
public Attributes getAttributes(Name name, String[] attrIds)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).getAttributes (name, attrIds);
|
||||
}
|
||||
|
||||
public void modifyAttributes(Name name, int mod_op, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mod_op, attrs);
|
||||
}
|
||||
|
||||
public void modifyAttributes(String name, int mod_op, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mod_op, attrs);
|
||||
}
|
||||
|
||||
public void modifyAttributes(Name name, ModificationItem[] mods)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mods);
|
||||
}
|
||||
|
||||
public void modifyAttributes(String name, ModificationItem[] mods)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mods);
|
||||
}
|
||||
|
||||
public void bind(Name name, Object obj, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).bind (name, obj, attrs);
|
||||
}
|
||||
|
||||
public void bind(String name, Object obj, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).bind (name, obj, attrs);
|
||||
}
|
||||
|
||||
public void rebind(Name name, Object obj, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).rebind (name, obj, attrs);
|
||||
}
|
||||
|
||||
public void rebind(String name, Object obj, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
getURLOrDefaultInitDirCtx (name).rebind (name, obj, attrs);
|
||||
}
|
||||
|
||||
public DirContext createSubcontext(Name name, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).createSubcontext (name, attrs);
|
||||
}
|
||||
|
||||
public DirContext createSubcontext(String name, Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).createSubcontext (name, attrs);
|
||||
}
|
||||
|
||||
public DirContext getSchema(Name name)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).getSchema (name);
|
||||
}
|
||||
|
||||
public DirContext getSchema(String name)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).getSchema (name);
|
||||
}
|
||||
|
||||
public DirContext getSchemaClassDefinition(Name name)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).getSchemaClassDefinition (name);
|
||||
}
|
||||
|
||||
public DirContext getSchemaClassDefinition(String name)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).getSchemaClassDefinition (name);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(Name name, Attributes matchingAttributes,
|
||||
String[] attributesToReturn)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes,
|
||||
attributesToReturn);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(String name, Attributes matchingAttributes,
|
||||
String[] attributesToReturn)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes,
|
||||
attributesToReturn);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(Name name, Attributes matchingAttributes)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(String name, Attributes matchingAttributes)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(Name name, String filter,
|
||||
SearchControls cons)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, filter, cons);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(String name, String filter,
|
||||
SearchControls cons)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, filter, cons);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(Name name, String filterExpr,
|
||||
Object[] filterArgs, SearchControls cons)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, filterExpr,
|
||||
filterArgs, cons);
|
||||
}
|
||||
|
||||
public NamingEnumeration search(String name, String filterExpr,
|
||||
Object[] filterArgs, SearchControls cons)
|
||||
throws NamingException
|
||||
{
|
||||
return getURLOrDefaultInitDirCtx (name).search (name, filterExpr,
|
||||
filterArgs, cons);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class InvalidAttributeIdentifierException extends NamingException
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class InvalidAttributeValueException extends NamingException
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class InvalidAttributesException extends NamingException
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class InvalidSearchControlsException extends NamingException
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class InvalidSearchFilterException extends NamingException
|
||||
{
|
||||
|
|
49
libjava/javax/naming/directory/ModificationItem.java
Normal file
49
libjava/javax/naming/directory/ModificationItem.java
Normal file
|
@ -0,0 +1,49 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.directory;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 13, 2001
|
||||
*/
|
||||
|
||||
public class ModificationItem implements Serializable
|
||||
{
|
||||
// Serialized fields.
|
||||
private int mod_op;
|
||||
private Attribute attr;
|
||||
|
||||
public ModificationItem(int mod_op, Attribute attr)
|
||||
{
|
||||
if (attr == null)
|
||||
throw new IllegalArgumentException("attr is null");
|
||||
if (mod_op != DirContext.ADD_ATTRIBUTE &&
|
||||
mod_op != DirContext.REPLACE_ATTRIBUTE &&
|
||||
mod_op != DirContext.REMOVE_ATTRIBUTE)
|
||||
throw new IllegalArgumentException("mod_op is invalid");
|
||||
this.mod_op = mod_op;
|
||||
this.attr = attr;
|
||||
}
|
||||
|
||||
public int getModificationOp()
|
||||
{
|
||||
return mod_op;
|
||||
}
|
||||
|
||||
public Attribute getAttribute()
|
||||
{
|
||||
return attr;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return "mod_op=" + mod_op + ":" + "attr=" + attr.toString();
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class NoSuchAttributeException extends NamingException
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -6,9 +6,9 @@ This software is copyrighted work licensed under the terms of the
|
|||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming;
|
||||
package javax.naming.directory;
|
||||
|
||||
import java.lang.Exception;
|
||||
import javax.naming.NamingException;
|
||||
|
||||
public class SchemaViolationException extends NamingException
|
||||
{
|
||||
|
|
106
libjava/javax/naming/directory/SearchControls.java
Normal file
106
libjava/javax/naming/directory/SearchControls.java
Normal file
|
@ -0,0 +1,106 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.directory;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 5, 2001
|
||||
*/
|
||||
|
||||
public class SearchControls extends Object implements Serializable
|
||||
{
|
||||
public static final int OBJECT_SCOPE = 0;
|
||||
public static final int ONELEVEL_SCOPE = 1;
|
||||
public static final int SUBTREE_SCOPE = 2;
|
||||
|
||||
// Serialized fields.
|
||||
private int searchScope;
|
||||
private int timeLimit;
|
||||
private boolean derefLink;
|
||||
private boolean returnObj;
|
||||
private long countLimit;
|
||||
private String[] attributesToReturn;
|
||||
|
||||
public SearchControls()
|
||||
{
|
||||
this(ONELEVEL_SCOPE, 0L, 0, null, false, false);
|
||||
}
|
||||
|
||||
public SearchControls(int scope, long countlim, int timelim, String[] attrs,
|
||||
boolean retobj, boolean deref)
|
||||
{
|
||||
searchScope = scope;
|
||||
timeLimit = timelim;
|
||||
derefLink = deref;
|
||||
returnObj = retobj;
|
||||
countLimit = countlim;
|
||||
attributesToReturn = attrs;
|
||||
}
|
||||
|
||||
public int getSearchScope()
|
||||
{
|
||||
return searchScope;
|
||||
}
|
||||
|
||||
public int getTimeLimit()
|
||||
{
|
||||
return timeLimit;
|
||||
}
|
||||
|
||||
public boolean getDerefLinkFlag()
|
||||
{
|
||||
return derefLink;
|
||||
}
|
||||
|
||||
public boolean getReturningObjFlag()
|
||||
{
|
||||
return returnObj;
|
||||
}
|
||||
|
||||
public long getCountLimit()
|
||||
{
|
||||
return countLimit;
|
||||
}
|
||||
|
||||
public String[] getReturningAttributes()
|
||||
{
|
||||
return attributesToReturn;
|
||||
}
|
||||
|
||||
public void setSearchScope(int scope)
|
||||
{
|
||||
searchScope = scope;
|
||||
}
|
||||
|
||||
public void setTimeLimit(int ms)
|
||||
{
|
||||
timeLimit = ms;
|
||||
}
|
||||
|
||||
public void setDerefLinkFlag(boolean on)
|
||||
{
|
||||
derefLink = on;
|
||||
}
|
||||
|
||||
public void setReturningObjFlag(boolean on)
|
||||
{
|
||||
returnObj = on;
|
||||
}
|
||||
|
||||
public void setCountLimit(long limit)
|
||||
{
|
||||
countLimit = limit;
|
||||
}
|
||||
|
||||
public void setReturningAttributes(String[] attrs)
|
||||
{
|
||||
attributesToReturn = attrs;
|
||||
}
|
||||
}
|
64
libjava/javax/naming/directory/SearchResult.java
Normal file
64
libjava/javax/naming/directory/SearchResult.java
Normal file
|
@ -0,0 +1,64 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.directory;
|
||||
import javax.naming.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 13, 2001
|
||||
*/
|
||||
|
||||
public class SearchResult extends Binding
|
||||
{
|
||||
// Serialized fields.
|
||||
private Attributes attrs;
|
||||
|
||||
public SearchResult(String name, Object obj, Attributes attrs)
|
||||
{
|
||||
super(name, obj);
|
||||
this.attrs = attrs;
|
||||
}
|
||||
|
||||
public SearchResult(String name, Object obj, Attributes attrs,
|
||||
boolean isRelative)
|
||||
{
|
||||
super(name, obj, isRelative);
|
||||
this.attrs = attrs;
|
||||
}
|
||||
|
||||
public SearchResult(String name, String className, Object obj,
|
||||
Attributes attrs)
|
||||
{
|
||||
super(name, className, obj);
|
||||
this.attrs = attrs;
|
||||
}
|
||||
|
||||
public SearchResult(String name, String className, Object obj,
|
||||
Attributes attrs, boolean isRelative)
|
||||
{
|
||||
super(name, className, obj, isRelative);
|
||||
this.attrs = attrs;
|
||||
}
|
||||
|
||||
public Attributes getAttributes()
|
||||
{
|
||||
return attrs;
|
||||
}
|
||||
|
||||
public void setAttributes(Attributes attrs)
|
||||
{
|
||||
this.attrs = attrs;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return super.toString() + ":" + attrs.toString();
|
||||
}
|
||||
}
|
29
libjava/javax/naming/event/EventContext.java
Normal file
29
libjava/javax/naming/event/EventContext.java
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.event;
|
||||
import javax.naming.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface EventContext extends Context
|
||||
{
|
||||
public static final int OBJECT_SCOPE = 0;
|
||||
public static final int ONELEVEL_SCOPE = 1;
|
||||
public static final int SUBTREE_SCOPE = 2;
|
||||
|
||||
public void addNamingListener(Name target, int scope, NamingListener l)
|
||||
throws NamingException;
|
||||
public void addNamingListener(String target, int scope, NamingListener l)
|
||||
throws NamingException;
|
||||
public void removeNamingListener(NamingListener l) throws NamingException;
|
||||
public boolean targetMustExist() throws NamingException;
|
||||
}
|
31
libjava/javax/naming/event/EventDirContext.java
Normal file
31
libjava/javax/naming/event/EventDirContext.java
Normal file
|
@ -0,0 +1,31 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.event;
|
||||
import javax.naming.*;
|
||||
import javax.naming.directory.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface EventDirContext extends EventContext, DirContext
|
||||
{
|
||||
public void addNamingListener(Name target, String filter, SearchControls ctls,
|
||||
NamingListener l) throws NamingException;
|
||||
public void addNamingListener(String target, String filter,
|
||||
SearchControls ctls, NamingListener l)
|
||||
throws NamingException;
|
||||
public void addNamingListener(Name target, String filter, Object[] filterArgs,
|
||||
SearchControls ctls, NamingListener l)
|
||||
throws NamingException;
|
||||
public void addNamingListener(String target, String filter,
|
||||
Object[] filterArgs, SearchControls ctls,
|
||||
NamingListener l) throws NamingException;
|
||||
}
|
21
libjava/javax/naming/event/NamespaceChangeListener.java
Normal file
21
libjava/javax/naming/event/NamespaceChangeListener.java
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.event;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface NamespaceChangeListener extends NamingListener
|
||||
{
|
||||
public void objectAdded(NamingEvent evt);
|
||||
public void objectRemoved(NamingEvent evt);
|
||||
public void objectRenamed(NamingEvent evt);
|
||||
}
|
89
libjava/javax/naming/event/NamingEvent.java
Normal file
89
libjava/javax/naming/event/NamingEvent.java
Normal file
|
@ -0,0 +1,89 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.event;
|
||||
import javax.naming.*;
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 5, 2001
|
||||
*/
|
||||
|
||||
public class NamingEvent extends EventObject
|
||||
{
|
||||
public static final int OBJECT_ADDED = 0;
|
||||
public static final int OBJECT_REMOVED = 1;
|
||||
public static final int OBJECT_RENAMED = 2;
|
||||
public static final int OBJECT_CHANGED = 3;
|
||||
|
||||
// Serialized fields.
|
||||
protected Object changeInfo;
|
||||
protected int type;
|
||||
protected Binding oldBinding;
|
||||
protected Binding newBinding;
|
||||
|
||||
public NamingEvent(EventContext source, int type, Binding newBd,
|
||||
Binding oldBd, Object changeInfo)
|
||||
{
|
||||
super(source);
|
||||
this.type = type;
|
||||
this.oldBinding = oldBd;
|
||||
this.newBinding = newBd;
|
||||
this.changeInfo = changeInfo;
|
||||
// FIXME: for OBJECT_ADDED, newBd must not be null;
|
||||
// FIXME: for OBJECT_CHANGED, newBd and oldBd must not be null;
|
||||
// FIXME: for OBJECT_RENAMED, one of newBd or oldBd may be null if newBd or
|
||||
// FIXME: oldBd is outside of the scope for which listener has registered.
|
||||
// FIXME: namingExceptionThrown() is called for the listener in question.
|
||||
}
|
||||
|
||||
public int getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
public EventContext getEventContext()
|
||||
{
|
||||
return (EventContext) getSource();
|
||||
}
|
||||
|
||||
public Binding getOldBinding()
|
||||
{
|
||||
return oldBinding;
|
||||
}
|
||||
|
||||
public Binding getNewBinding()
|
||||
{
|
||||
return newBinding;
|
||||
}
|
||||
|
||||
public Object getChangeInfo()
|
||||
{
|
||||
return changeInfo;
|
||||
}
|
||||
|
||||
public void dispatch(NamingListener listener)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case OBJECT_ADDED:
|
||||
((NamespaceChangeListener) listener).objectAdded(this);
|
||||
break;
|
||||
case OBJECT_REMOVED:
|
||||
((NamespaceChangeListener) listener).objectRemoved(this);
|
||||
break;
|
||||
case OBJECT_RENAMED:
|
||||
((NamespaceChangeListener) listener).objectRenamed(this);
|
||||
break;
|
||||
case OBJECT_CHANGED:
|
||||
((ObjectChangeListener) listener).objectChanged(this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
43
libjava/javax/naming/event/NamingExceptionEvent.java
Normal file
43
libjava/javax/naming/event/NamingExceptionEvent.java
Normal file
|
@ -0,0 +1,43 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.event;
|
||||
import javax.naming.*;
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 5, 2001
|
||||
*/
|
||||
|
||||
public class NamingExceptionEvent extends EventObject
|
||||
{
|
||||
// Serialized fields.
|
||||
private NamingException exception;
|
||||
|
||||
public NamingExceptionEvent(EventContext source, NamingException exc)
|
||||
{
|
||||
super(source);
|
||||
exception = exc;
|
||||
}
|
||||
|
||||
public NamingException getException()
|
||||
{
|
||||
return exception;
|
||||
}
|
||||
|
||||
public EventContext getEventContext()
|
||||
{
|
||||
return (EventContext) getSource();
|
||||
}
|
||||
|
||||
public void dispatch(NamingListener listener)
|
||||
{
|
||||
listener.namingExceptionThrown(this);
|
||||
}
|
||||
}
|
20
libjava/javax/naming/event/NamingListener.java
Normal file
20
libjava/javax/naming/event/NamingListener.java
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.event;
|
||||
import java.util.EventListener;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface NamingListener extends EventListener
|
||||
{
|
||||
public void namingExceptionThrown(NamingExceptionEvent evt);
|
||||
}
|
19
libjava/javax/naming/event/ObjectChangeListener.java
Normal file
19
libjava/javax/naming/event/ObjectChangeListener.java
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.event;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface ObjectChangeListener extends NamingListener
|
||||
{
|
||||
public void objectChanged(NamingEvent evt);
|
||||
}
|
25
libjava/javax/naming/ldap/Control.java
Normal file
25
libjava/javax/naming/ldap/Control.java
Normal file
|
@ -0,0 +1,25 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface Control extends Serializable
|
||||
{
|
||||
public static final boolean CRITICAL = true;
|
||||
public static final boolean NONCRITICAL = false;
|
||||
|
||||
public String getID();
|
||||
public boolean isCritical();
|
||||
public byte[] getEncodedValue();
|
||||
}
|
75
libjava/javax/naming/ldap/ControlFactory.java
Normal file
75
libjava/javax/naming/ldap/ControlFactory.java
Normal file
|
@ -0,0 +1,75 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
|
||||
import javax.naming.*;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date June 22, 2001
|
||||
*/
|
||||
public abstract class ControlFactory
|
||||
{
|
||||
protected ControlFactory ()
|
||||
{
|
||||
}
|
||||
|
||||
public abstract Control getControlInstance (Control control)
|
||||
throws NamingException;
|
||||
|
||||
public static Control getControlInstance (Control control,
|
||||
Context ctx,
|
||||
Hashtable env)
|
||||
throws NamingException
|
||||
{
|
||||
String path = (String) env.get (LdapContext.CONTROL_FACTORIES);
|
||||
String path2 = null;
|
||||
if (ctx != null)
|
||||
path2 = (String) ctx.getEnvironment ().get (LdapContext.CONTROL_FACTORIES);
|
||||
if (path == null)
|
||||
path = path2;
|
||||
else if (path2 != null)
|
||||
path += ":" + path2;
|
||||
|
||||
StringTokenizer tokens = new StringTokenizer (path, ":");
|
||||
while (tokens.hasMoreTokens ())
|
||||
{
|
||||
String name = tokens.nextToken ();
|
||||
try
|
||||
{
|
||||
Class k = Class.forName (name);
|
||||
ControlFactory cf = (ControlFactory) k.newInstance ();
|
||||
Control ctrl = cf.getControlInstance (control);
|
||||
if (ctrl != null)
|
||||
return ctrl;
|
||||
}
|
||||
catch (ClassNotFoundException _1)
|
||||
{
|
||||
// Ignore it.
|
||||
}
|
||||
catch (ClassCastException _2)
|
||||
{
|
||||
// Ignore it.
|
||||
}
|
||||
catch (InstantiationException _3)
|
||||
{
|
||||
// If we couldn't instantiate the factory we might get
|
||||
// this.
|
||||
}
|
||||
catch (IllegalAccessException _4)
|
||||
{
|
||||
// Another possibility when instantiating.
|
||||
}
|
||||
}
|
||||
|
||||
return control;
|
||||
}
|
||||
}
|
26
libjava/javax/naming/ldap/ExtendedRequest.java
Normal file
26
libjava/javax/naming/ldap/ExtendedRequest.java
Normal file
|
@ -0,0 +1,26 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import java.io.Serializable;
|
||||
import javax.naming.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface ExtendedRequest extends Serializable
|
||||
{
|
||||
public String getID();
|
||||
public byte[] getEncodedValue();
|
||||
public ExtendedResponse createExtendedResponse(String id,
|
||||
byte[] berValue, int offset,
|
||||
int length)
|
||||
throws NamingException;
|
||||
}
|
21
libjava/javax/naming/ldap/ExtendedResponse.java
Normal file
21
libjava/javax/naming/ldap/ExtendedResponse.java
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface ExtendedResponse extends Serializable
|
||||
{
|
||||
public String getID();
|
||||
public byte[] getEncodedValue();
|
||||
}
|
20
libjava/javax/naming/ldap/HasControls.java
Normal file
20
libjava/javax/naming/ldap/HasControls.java
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import javax.naming.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface HasControls
|
||||
{
|
||||
public Control[] getControls() throws NamingException;
|
||||
}
|
99
libjava/javax/naming/ldap/InitialLdapContext.java
Normal file
99
libjava/javax/naming/ldap/InitialLdapContext.java
Normal file
|
@ -0,0 +1,99 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
|
||||
import javax.naming.*;
|
||||
import javax.naming.directory.InitialDirContext;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date June 21, 2001
|
||||
*/
|
||||
public class InitialLdapContext
|
||||
extends InitialDirContext
|
||||
implements LdapContext
|
||||
{
|
||||
public InitialLdapContext ()
|
||||
throws NamingException
|
||||
{
|
||||
this (null, null);
|
||||
}
|
||||
|
||||
public InitialLdapContext (Hashtable environment, Control[] connControls)
|
||||
throws NamingException
|
||||
{
|
||||
super (false);
|
||||
|
||||
if (connControls != null)
|
||||
{
|
||||
if (environment == null)
|
||||
environment = new Hashtable ();
|
||||
else
|
||||
environment = (Hashtable) environment.clone ();
|
||||
environment.put ("java.naming.ldap.control.connect",
|
||||
connControls);
|
||||
}
|
||||
|
||||
init (environment);
|
||||
}
|
||||
|
||||
private LdapContext getDefaultInitLdapCtx ()
|
||||
throws NamingException
|
||||
{
|
||||
Context c = getDefaultInitCtx ();
|
||||
if (c == null)
|
||||
throw new NoInitialContextException ();
|
||||
else if (! (c instanceof LdapContext))
|
||||
throw new NotContextException ();
|
||||
return (LdapContext) c;
|
||||
}
|
||||
|
||||
public ExtendedResponse extendedOperation (ExtendedRequest request)
|
||||
throws NamingException
|
||||
{
|
||||
return getDefaultInitLdapCtx ().extendedOperation (request);
|
||||
}
|
||||
|
||||
public Control[] getConnectControls ()
|
||||
throws NamingException
|
||||
{
|
||||
return getDefaultInitLdapCtx ().getConnectControls ();
|
||||
}
|
||||
|
||||
public Control[] getRequestControls ()
|
||||
throws NamingException
|
||||
{
|
||||
return getDefaultInitLdapCtx ().getRequestControls ();
|
||||
}
|
||||
|
||||
public Control[] getResponseControls ()
|
||||
throws NamingException
|
||||
{
|
||||
return getDefaultInitLdapCtx ().getResponseControls ();
|
||||
}
|
||||
|
||||
public LdapContext newInstance (Control[] reqControls)
|
||||
throws NamingException
|
||||
{
|
||||
return getDefaultInitLdapCtx ().newInstance (reqControls);
|
||||
}
|
||||
|
||||
public void reconnect (Control[] connControls)
|
||||
throws NamingException
|
||||
{
|
||||
getDefaultInitLdapCtx ().reconnect (connControls);
|
||||
}
|
||||
|
||||
public void setRequestControls (Control[] reqControls)
|
||||
throws NamingException
|
||||
{
|
||||
getDefaultInitLdapCtx ().setRequestControls (reqControls);
|
||||
}
|
||||
}
|
32
libjava/javax/naming/ldap/LdapContext.java
Normal file
32
libjava/javax/naming/ldap/LdapContext.java
Normal file
|
@ -0,0 +1,32 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import javax.naming.*;
|
||||
import javax.naming.directory.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface LdapContext extends DirContext
|
||||
{
|
||||
public static final String CONTROL_FACTORIES = "java.naming.factory.control";
|
||||
|
||||
public ExtendedResponse extendedOperation(ExtendedRequest request)
|
||||
throws NamingException;
|
||||
public LdapContext newInstance(Control[] requestControls)
|
||||
throws NamingException;
|
||||
public void reconnect(Control[] connCtls) throws NamingException;
|
||||
public Control[] getConnectControls() throws NamingException;
|
||||
public void setRequestControls(Control[] requestControls)
|
||||
throws NamingException;
|
||||
public Control[] getRequestControls() throws NamingException;
|
||||
public Control[] getResponseControls() throws NamingException;
|
||||
}
|
35
libjava/javax/naming/ldap/LdapReferralException.java
Normal file
35
libjava/javax/naming/ldap/LdapReferralException.java
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import javax.naming.*;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public abstract class LdapReferralException extends ReferralException
|
||||
{
|
||||
protected LdapReferralException()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
protected LdapReferralException(String explanation)
|
||||
{
|
||||
super(explanation);
|
||||
}
|
||||
|
||||
public abstract Context getReferralContext() throws NamingException;
|
||||
public abstract Context getReferralContext(Hashtable env)
|
||||
throws NamingException;
|
||||
public abstract Context getReferralContext(Hashtable env, Control[] reqCtls)
|
||||
throws NamingException;
|
||||
}
|
21
libjava/javax/naming/ldap/UnsolicitedNotification.java
Normal file
21
libjava/javax/naming/ldap/UnsolicitedNotification.java
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import javax.naming.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface UnsolicitedNotification extends ExtendedResponse, HasControls
|
||||
{
|
||||
public String[] getReferrals();
|
||||
public NamingException getException();
|
||||
}
|
38
libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
Normal file
38
libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
Normal file
|
@ -0,0 +1,38 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 5, 2001
|
||||
*/
|
||||
|
||||
public class UnsolicitedNotificationEvent extends EventObject
|
||||
{
|
||||
// Serialized fields.
|
||||
private UnsolicitedNotification notice;
|
||||
|
||||
public UnsolicitedNotificationEvent(Object src,
|
||||
UnsolicitedNotification notice)
|
||||
{
|
||||
super(src);
|
||||
this.notice = notice;
|
||||
}
|
||||
|
||||
public UnsolicitedNotification getNotification()
|
||||
{
|
||||
return notice;
|
||||
}
|
||||
|
||||
public void dispatch(UnsolicitedNotificationListener listener)
|
||||
{
|
||||
listener.notificationReceived(this);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.ldap;
|
||||
import javax.naming.event.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface UnsolicitedNotificationListener extends NamingListener
|
||||
{
|
||||
public void notificationReceived(UnsolicitedNotificationEvent evt);
|
||||
}
|
24
libjava/javax/naming/spi/DirObjectFactory.java
Normal file
24
libjava/javax/naming/spi/DirObjectFactory.java
Normal file
|
@ -0,0 +1,24 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.spi;
|
||||
import javax.naming.*;
|
||||
import javax.naming.directory.*;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface DirObjectFactory extends ObjectFactory
|
||||
{
|
||||
public Object getObjectInstance(Object obj, Name name, Context nameCtx,
|
||||
Hashtable environment, Attributes attrs)
|
||||
throws Exception;
|
||||
}
|
50
libjava/javax/naming/spi/DirStateFactory.java
Normal file
50
libjava/javax/naming/spi/DirStateFactory.java
Normal file
|
@ -0,0 +1,50 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.spi;
|
||||
import javax.naming.*;
|
||||
import javax.naming.directory.*;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface DirStateFactory extends StateFactory
|
||||
{
|
||||
// Inner class
|
||||
|
||||
public static class Result
|
||||
{
|
||||
private Object obj;
|
||||
private Attributes outAttrs;
|
||||
|
||||
public Result(Object obj, Attributes outAttrs)
|
||||
{
|
||||
this.obj = obj;
|
||||
this.outAttrs = outAttrs;
|
||||
}
|
||||
|
||||
public Object getObject()
|
||||
{
|
||||
return obj;
|
||||
}
|
||||
|
||||
public Attributes getAttributes()
|
||||
{
|
||||
return outAttrs;
|
||||
}
|
||||
}
|
||||
|
||||
public DirStateFactory.Result getStateToBind(Object obj, Name name,
|
||||
Context nameCtx,
|
||||
Hashtable environment,
|
||||
Attributes inAttrs)
|
||||
throws NamingException;
|
||||
}
|
204
libjava/javax/naming/spi/DirectoryManager.java
Normal file
204
libjava/javax/naming/spi/DirectoryManager.java
Normal file
|
@ -0,0 +1,204 @@
|
|||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.spi;
|
||||
|
||||
import javax.naming.*;
|
||||
import javax.naming.directory.*;
|
||||
import java.util.Hashtable;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date June 25, 2001
|
||||
*/
|
||||
public class DirectoryManager extends NamingManager
|
||||
{
|
||||
// Can't instantiate this class.
|
||||
DirectoryManager ()
|
||||
{
|
||||
}
|
||||
|
||||
public static DirContext getContinuationDirContext (CannotProceedException c)
|
||||
throws NamingException
|
||||
{
|
||||
return (DirContext) getContinuationContext (c);
|
||||
}
|
||||
|
||||
// Try to create an object using the factory. Return null on
|
||||
// failure.
|
||||
private static Object tryCreateObject (ObjectFactory factory,
|
||||
Object refInfo,
|
||||
Name name,
|
||||
Context nameCtx,
|
||||
Hashtable environment,
|
||||
Attributes attrs)
|
||||
throws Exception
|
||||
{
|
||||
if (factory instanceof DirObjectFactory)
|
||||
{
|
||||
DirObjectFactory dof = (DirObjectFactory) factory;
|
||||
return dof.getObjectInstance (refInfo, name, nameCtx,
|
||||
environment, attrs);
|
||||
}
|
||||
else
|
||||
return factory.getObjectInstance (refInfo, name, nameCtx,
|
||||
environment);
|
||||
}
|
||||
|
||||
public static Object getObjectInstance (Object refInfo, Name name,
|
||||
Context nameCtx,
|
||||
Hashtable environment,
|
||||
Attributes attrs)
|
||||
throws Exception
|
||||
{
|
||||
ObjectFactory factory = null;
|
||||
|
||||
if (ofb != null)
|
||||
factory = ofb.createObjectFactory (refInfo, environment);
|
||||
else
|
||||
{
|
||||
// First see if we have a Reference or a Referenceable. If so
|
||||
// we do some special processing.
|
||||
Object ref2 = refInfo;
|
||||
if (refInfo instanceof Referenceable)
|
||||
ref2 = ((Referenceable) refInfo).getReference ();
|
||||
if (ref2 instanceof Reference)
|
||||
{
|
||||
Reference ref = (Reference) ref2;
|
||||
|
||||
// If we have a factory class name then we use that.
|
||||
String fClass = ref.getFactoryClassName ();
|
||||
if (fClass != null)
|
||||
{
|
||||
// Exceptions here are passed to the caller.
|
||||
Class k = Class.forName (fClass);
|
||||
factory = (ObjectFactory) k.newInstance ();
|
||||
}
|
||||
else
|
||||
{
|
||||
// There's no factory class name. If the address is a
|
||||
// StringRefAddr with address type `URL', then we try
|
||||
// the URL's context factory.
|
||||
Enumeration e = ref.getAll ();
|
||||
while (e.hasMoreElements ())
|
||||
{
|
||||
RefAddr ra = (RefAddr) e.nextElement ();
|
||||
if (ra instanceof StringRefAddr
|
||||
&& "URL".equals (ra.getType ()))
|
||||
{
|
||||
factory
|
||||
= (ObjectFactory) getURLContext (refInfo,
|
||||
name,
|
||||
nameCtx,
|
||||
(String) ra.getContent (),
|
||||
environment);
|
||||
Object obj = tryCreateObject (factory,
|
||||
refInfo,
|
||||
name,
|
||||
nameCtx,
|
||||
environment,
|
||||
attrs);
|
||||
if (obj != null)
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
// Have to try the next step.
|
||||
factory = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Now look at OBJECT_FACTORIES to find the factory.
|
||||
if (factory == null)
|
||||
{
|
||||
StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES,
|
||||
environment, nameCtx);
|
||||
|
||||
while (tokens.hasMoreTokens ())
|
||||
{
|
||||
String klassName = tokens.nextToken ();
|
||||
Class k = Class.forName (klassName);
|
||||
factory = (ObjectFactory) k.newInstance ();
|
||||
Object obj = tryCreateObject (factory, refInfo, name,
|
||||
nameCtx, environment, attrs);
|
||||
if (obj != null)
|
||||
return obj;
|
||||
}
|
||||
|
||||
// Failure.
|
||||
return refInfo;
|
||||
}
|
||||
}
|
||||
|
||||
if (factory == null)
|
||||
return refInfo;
|
||||
Object obj = tryCreateObject (factory, refInfo, name,
|
||||
nameCtx, environment, attrs);
|
||||
return obj == null ? refInfo : obj;
|
||||
}
|
||||
|
||||
public static DirStateFactory.Result getStateToBind (Object obj,
|
||||
Name name,
|
||||
Context nameCtx,
|
||||
Hashtable environment,
|
||||
Attributes attrs)
|
||||
throws NamingException
|
||||
{
|
||||
StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES,
|
||||
environment, nameCtx);
|
||||
while (tokens.hasMoreTokens ())
|
||||
{
|
||||
String klassName = tokens.nextToken ();
|
||||
try
|
||||
{
|
||||
Class k = Class.forName (klassName);
|
||||
StateFactory factory = (StateFactory) k.newInstance ();
|
||||
|
||||
DirStateFactory.Result result = null;
|
||||
if (factory instanceof DirStateFactory)
|
||||
{
|
||||
DirStateFactory dsf = (DirStateFactory) factory;
|
||||
result = dsf.getStateToBind (obj, name, nameCtx, environment,
|
||||
attrs);
|
||||
}
|
||||
else
|
||||
{
|
||||
Object o = factory.getStateToBind (obj, name, nameCtx,
|
||||
environment);
|
||||
if (o != null)
|
||||
result = new DirStateFactory.Result (o, attrs);
|
||||
}
|
||||
if (result != null)
|
||||
return result;
|
||||
}
|
||||
catch (ClassNotFoundException _1)
|
||||
{
|
||||
// Ignore it.
|
||||
}
|
||||
catch (ClassCastException _2)
|
||||
{
|
||||
// This means that the class we found was not an
|
||||
// ObjectFactory or that the factory returned something
|
||||
// which was not a Context.
|
||||
}
|
||||
catch (InstantiationException _3)
|
||||
{
|
||||
// If we couldn't instantiate the factory we might get
|
||||
// this.
|
||||
}
|
||||
catch (IllegalAccessException _4)
|
||||
{
|
||||
// Another possibility when instantiating.
|
||||
}
|
||||
}
|
||||
|
||||
return new DirStateFactory.Result (obj, attrs);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -8,19 +8,28 @@
|
|||
|
||||
package javax.naming.spi;
|
||||
|
||||
import java.util.Hashtable;
|
||||
import java.util.*;
|
||||
import javax.naming.*;
|
||||
|
||||
public class NamingManager
|
||||
{
|
||||
public static final String CPE = "java.naming.spi.CannotProceedException";
|
||||
|
||||
private static InitialContextFactoryBuilder icfb = null;
|
||||
private static ObjectFactoryBuilder ofb = null;
|
||||
|
||||
// This class cannot be instantiated.
|
||||
NamingManager ()
|
||||
{
|
||||
}
|
||||
|
||||
public static boolean hasInitialContextFactoryBuilder ()
|
||||
{
|
||||
return icfb != null;
|
||||
}
|
||||
|
||||
public static Context getInitialContext (Hashtable environment) throws NamingException
|
||||
public static Context getInitialContext (Hashtable environment)
|
||||
throws NamingException
|
||||
{
|
||||
InitialContextFactory icf = null;
|
||||
|
||||
|
@ -33,25 +42,297 @@ public class NamingManager
|
|||
java_naming_factory_initial
|
||||
= (String) environment.get (Context.INITIAL_CONTEXT_FACTORY);
|
||||
if (java_naming_factory_initial == null)
|
||||
throw new NoInitialContextException ("Can't find property: " + Context.INITIAL_CONTEXT_FACTORY);
|
||||
|
||||
try {
|
||||
icf = (InitialContextFactory) Thread.currentThread().getContextClassLoader().loadClass(java_naming_factory_initial).newInstance();
|
||||
} catch (Exception exception) {
|
||||
NoInitialContextException e
|
||||
= new NoInitialContextException("Can't load InitialContextFactory class: " + java_naming_factory_initial);
|
||||
e.setRootCause(exception);
|
||||
throw e;
|
||||
}
|
||||
java_naming_factory_initial =
|
||||
System.getProperty (Context.INITIAL_CONTEXT_FACTORY);
|
||||
if (java_naming_factory_initial == null)
|
||||
throw new
|
||||
NoInitialContextException ("Can't find property: "
|
||||
+ Context.INITIAL_CONTEXT_FACTORY);
|
||||
|
||||
try
|
||||
{
|
||||
icf = (InitialContextFactory) Class.forName (java_naming_factory_initial).newInstance ();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
NoInitialContextException e
|
||||
= new NoInitialContextException ("Can't load InitialContextFactory class: "
|
||||
+ java_naming_factory_initial);
|
||||
e.setRootCause(exception);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return icf.getInitialContext (environment);
|
||||
}
|
||||
|
||||
public static Context getURLContext(String scheme,
|
||||
Hashtable environment)
|
||||
static Context getURLContext (Object refInfo,
|
||||
Name name,
|
||||
Context nameCtx,
|
||||
String scheme,
|
||||
Hashtable environment)
|
||||
throws NamingException
|
||||
{
|
||||
String prefixes = null;
|
||||
if (environment != null)
|
||||
prefixes = (String) environment.get (Context.URL_PKG_PREFIXES);
|
||||
if (prefixes == null)
|
||||
prefixes = System.getProperty (Context.URL_PKG_PREFIXES);
|
||||
if (prefixes == null)
|
||||
{
|
||||
// Specified as the default in the docs. Unclear if this is
|
||||
// right for us.
|
||||
prefixes = "com.sun.jndi.url";
|
||||
}
|
||||
|
||||
scheme += "URLContextFactory";
|
||||
|
||||
StringTokenizer tokens = new StringTokenizer (prefixes, ":");
|
||||
while (tokens.hasMoreTokens ())
|
||||
{
|
||||
String aTry = tokens.nextToken ();
|
||||
try
|
||||
{
|
||||
Class factoryClass = Class.forName (aTry + "." + scheme);
|
||||
ObjectFactory factory =
|
||||
(ObjectFactory) factoryClass.newInstance ();
|
||||
Object obj = factory.getObjectInstance (refInfo, name,
|
||||
nameCtx, environment);
|
||||
Context ctx = (Context) obj;
|
||||
if (ctx != null)
|
||||
return ctx;
|
||||
}
|
||||
catch (ClassNotFoundException _1)
|
||||
{
|
||||
// Ignore it.
|
||||
}
|
||||
catch (ClassCastException _2)
|
||||
{
|
||||
// This means that the class we found was not an
|
||||
// ObjectFactory or that the factory returned something
|
||||
// which was not a Context.
|
||||
}
|
||||
catch (InstantiationException _3)
|
||||
{
|
||||
// If we couldn't instantiate the factory we might get
|
||||
// this.
|
||||
}
|
||||
catch (IllegalAccessException _4)
|
||||
{
|
||||
// Another possibility when instantiating.
|
||||
}
|
||||
catch (NamingException _5)
|
||||
{
|
||||
throw _5;
|
||||
}
|
||||
catch (Exception _6)
|
||||
{
|
||||
// Anything from getObjectInstance.
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Context getURLContext (String scheme,
|
||||
Hashtable environment)
|
||||
throws NamingException
|
||||
{
|
||||
throw new Error ("javax.naming.spi.NamingManager.getURLContext not implemented");
|
||||
return getURLContext (null, null, null, scheme, environment);
|
||||
}
|
||||
|
||||
public static void setObjectFactoryBuilder (ObjectFactoryBuilder builder)
|
||||
throws NamingException
|
||||
{
|
||||
SecurityManager sm = System.getSecurityManager ();
|
||||
if (sm != null)
|
||||
sm.checkSetFactory ();
|
||||
// Once the builder is installed it cannot be replaced.
|
||||
if (ofb != null)
|
||||
throw new IllegalStateException ("builder already installed");
|
||||
if (builder != null)
|
||||
ofb = builder;
|
||||
}
|
||||
|
||||
static StringTokenizer getPlusPath (String property, Hashtable env,
|
||||
Context nameCtx)
|
||||
throws NamingException
|
||||
{
|
||||
String path = (String) env.get (property);
|
||||
if (nameCtx == null)
|
||||
nameCtx = getInitialContext (env);
|
||||
String path2 = (String) nameCtx.getEnvironment ().get (property);
|
||||
if (path == null)
|
||||
path = path2;
|
||||
else if (path2 != null)
|
||||
path += ":" + path2;
|
||||
return new StringTokenizer (path, ":");
|
||||
}
|
||||
|
||||
public static Object getObjectInstance (Object refInfo,
|
||||
Name name,
|
||||
Context nameCtx,
|
||||
Hashtable environment)
|
||||
throws Exception
|
||||
{
|
||||
ObjectFactory factory = null;
|
||||
|
||||
if (ofb != null)
|
||||
factory = ofb.createObjectFactory (refInfo, environment);
|
||||
else
|
||||
{
|
||||
// First see if we have a Reference or a Referenceable. If so
|
||||
// we do some special processing.
|
||||
Object ref2 = refInfo;
|
||||
if (refInfo instanceof Referenceable)
|
||||
ref2 = ((Referenceable) refInfo).getReference ();
|
||||
if (ref2 instanceof Reference)
|
||||
{
|
||||
Reference ref = (Reference) ref2;
|
||||
|
||||
// If we have a factory class name then we use that.
|
||||
String fClass = ref.getFactoryClassName ();
|
||||
if (fClass != null)
|
||||
{
|
||||
// Exceptions here are passed to the caller.
|
||||
Class k = Class.forName (fClass);
|
||||
factory = (ObjectFactory) k.newInstance ();
|
||||
}
|
||||
else
|
||||
{
|
||||
// There's no factory class name. If the address is a
|
||||
// StringRefAddr with address type `URL', then we try
|
||||
// the URL's context factory.
|
||||
Enumeration e = ref.getAll ();
|
||||
while (e.hasMoreElements ())
|
||||
{
|
||||
RefAddr ra = (RefAddr) e.nextElement ();
|
||||
if (ra instanceof StringRefAddr
|
||||
&& "URL".equals (ra.getType ()))
|
||||
{
|
||||
factory
|
||||
= (ObjectFactory) getURLContext (refInfo,
|
||||
name,
|
||||
nameCtx,
|
||||
(String) ra.getContent (),
|
||||
environment);
|
||||
Object obj = factory.getObjectInstance (refInfo,
|
||||
name,
|
||||
nameCtx,
|
||||
environment);
|
||||
if (obj != null)
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
// Have to try the next step.
|
||||
factory = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Now look at OBJECT_FACTORIES to find the factory.
|
||||
if (factory == null)
|
||||
{
|
||||
StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES,
|
||||
environment, nameCtx);
|
||||
|
||||
while (tokens.hasMoreTokens ())
|
||||
{
|
||||
String klassName = tokens.nextToken ();
|
||||
Class k = Class.forName (klassName);
|
||||
factory = (ObjectFactory) k.newInstance ();
|
||||
Object obj = factory.getObjectInstance (refInfo, name,
|
||||
nameCtx, environment);
|
||||
if (obj != null)
|
||||
return obj;
|
||||
}
|
||||
|
||||
// Failure.
|
||||
return refInfo;
|
||||
}
|
||||
}
|
||||
|
||||
if (factory == null)
|
||||
return refInfo;
|
||||
Object obj = factory.getObjectInstance (refInfo, name,
|
||||
nameCtx, environment);
|
||||
return obj == null ? refInfo : obj;
|
||||
}
|
||||
|
||||
public static void setInitialContextFactoryBuilder (InitialContextFactoryBuilder builder)
|
||||
throws NamingException
|
||||
{
|
||||
SecurityManager sm = System.getSecurityManager ();
|
||||
if (sm != null)
|
||||
sm.checkSetFactory ();
|
||||
// Once the builder is installed it cannot be replaced.
|
||||
if (icfb != null)
|
||||
throw new IllegalStateException ("builder already installed");
|
||||
if (builder != null)
|
||||
icfb = builder;
|
||||
}
|
||||
|
||||
public static Context getContinuationContext (CannotProceedException cpe)
|
||||
throws NamingException
|
||||
{
|
||||
Hashtable env = cpe.getEnvironment ();
|
||||
if (env != null)
|
||||
env.put (CPE, cpe);
|
||||
|
||||
// It is really unclear to me if this is right.
|
||||
try
|
||||
{
|
||||
Object obj = getObjectInstance (null, cpe.getAltName (),
|
||||
cpe.getAltNameCtx (), env);
|
||||
if (obj != null)
|
||||
return (Context) obj;
|
||||
}
|
||||
catch (Exception _)
|
||||
{
|
||||
}
|
||||
|
||||
throw cpe;
|
||||
}
|
||||
|
||||
public static Object getStateToBind (Object obj, Name name,
|
||||
Context nameCtx, Hashtable environment)
|
||||
throws NamingException
|
||||
{
|
||||
StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES,
|
||||
environment, nameCtx);
|
||||
while (tokens.hasMoreTokens ())
|
||||
{
|
||||
String klassName = tokens.nextToken ();
|
||||
try
|
||||
{
|
||||
Class k = Class.forName (klassName);
|
||||
StateFactory factory = (StateFactory) k.newInstance ();
|
||||
Object o = factory.getStateToBind (obj, name, nameCtx,
|
||||
environment);
|
||||
if (o != null)
|
||||
return o;
|
||||
}
|
||||
catch (ClassNotFoundException _1)
|
||||
{
|
||||
// Ignore it.
|
||||
}
|
||||
catch (ClassCastException _2)
|
||||
{
|
||||
// This means that the class we found was not an
|
||||
// ObjectFactory or that the factory returned something
|
||||
// which was not a Context.
|
||||
}
|
||||
catch (InstantiationException _3)
|
||||
{
|
||||
// If we couldn't instantiate the factory we might get
|
||||
// this.
|
||||
}
|
||||
catch (IllegalAccessException _4)
|
||||
{
|
||||
// Another possibility when instantiating.
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
|
@ -11,14 +11,11 @@ package javax.naming.spi;
|
|||
import java.util.Hashtable;
|
||||
import javax.naming.*;
|
||||
|
||||
public class ObjectFactory
|
||||
public interface ObjectFactory
|
||||
{
|
||||
public Object getObjectInstance (Object obj,
|
||||
Name name,
|
||||
Context nameCtx,
|
||||
Hashtable environment)
|
||||
throws Exception
|
||||
{
|
||||
throw new Error ("javax.naming.spi.ObjectFactory.getObjectInstance not implemented");
|
||||
}
|
||||
throws Exception;
|
||||
}
|
||||
|
|
23
libjava/javax/naming/spi/ObjectFactoryBuilder.java
Normal file
23
libjava/javax/naming/spi/ObjectFactoryBuilder.java
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.spi;
|
||||
import javax.naming.*;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface ObjectFactoryBuilder
|
||||
{
|
||||
public ObjectFactory createObjectFactory(Object obj,
|
||||
Hashtable environment)
|
||||
throws NamingException;
|
||||
}
|
93
libjava/javax/naming/spi/ResolveResult.java
Normal file
93
libjava/javax/naming/spi/ResolveResult.java
Normal file
|
@ -0,0 +1,93 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.spi;
|
||||
import javax.naming.*;
|
||||
import java.util.EventObject;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 5, 2001
|
||||
*/
|
||||
|
||||
public class ResolveResult implements Serializable
|
||||
{
|
||||
// Serialized fields.
|
||||
protected Object resolvedObj;
|
||||
protected Name remainingName;
|
||||
|
||||
protected ResolveResult()
|
||||
{
|
||||
resolvedObj = null;
|
||||
remainingName = null;
|
||||
}
|
||||
|
||||
public ResolveResult(Object robj, String rcomp)
|
||||
{
|
||||
if (robj == null || rcomp == null)
|
||||
throw new IllegalArgumentException ();
|
||||
resolvedObj = robj;
|
||||
remainingName = new CompositeName ();
|
||||
try
|
||||
{
|
||||
remainingName.add (rcomp);
|
||||
}
|
||||
catch (InvalidNameException _)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public ResolveResult(Object robj, Name rname)
|
||||
{
|
||||
resolvedObj = robj;
|
||||
remainingName = rname;
|
||||
}
|
||||
|
||||
public Name getRemainingName()
|
||||
{
|
||||
return remainingName;
|
||||
}
|
||||
|
||||
public Object getResolvedObj()
|
||||
{
|
||||
return resolvedObj;
|
||||
}
|
||||
|
||||
public void setRemainingName(Name name)
|
||||
{
|
||||
remainingName = (Name) name.clone();
|
||||
}
|
||||
|
||||
public void appendRemainingName(Name name)
|
||||
{
|
||||
try
|
||||
{
|
||||
remainingName.addAll(name);
|
||||
}
|
||||
catch (InvalidNameException _)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void appendRemainingComponent(String name)
|
||||
{
|
||||
try
|
||||
{
|
||||
remainingName.add(name);
|
||||
}
|
||||
catch (InvalidNameException _)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void setResolvedObj(Object obj)
|
||||
{
|
||||
resolvedObj = obj;
|
||||
}
|
||||
}
|
23
libjava/javax/naming/spi/Resolver.java
Normal file
23
libjava/javax/naming/spi/Resolver.java
Normal file
|
@ -0,0 +1,23 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.spi;
|
||||
import javax.naming.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface Resolver
|
||||
{
|
||||
public ResolveResult resolveToClass(Name name, Class contextType)
|
||||
throws NamingException;
|
||||
public ResolveResult resolveToClass(String name, Class contextType)
|
||||
throws NamingException;
|
||||
}
|
22
libjava/javax/naming/spi/StateFactory.java
Normal file
22
libjava/javax/naming/spi/StateFactory.java
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.naming.spi;
|
||||
import javax.naming.*;
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date June 1, 2001
|
||||
*/
|
||||
|
||||
public interface StateFactory
|
||||
{
|
||||
public Object getStateToBind(Object obj, Name name, Context nameCtx,
|
||||
Hashtable environment) throws NamingException;
|
||||
}
|
27
libjava/javax/transaction/HeuristicCommitException.java
Normal file
27
libjava/javax/transaction/HeuristicCommitException.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public class HeuristicCommitException extends java.lang.Exception
|
||||
{
|
||||
public HeuristicCommitException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public HeuristicCommitException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
27
libjava/javax/transaction/HeuristicMixedException.java
Normal file
27
libjava/javax/transaction/HeuristicMixedException.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public class HeuristicMixedException extends java.lang.Exception
|
||||
{
|
||||
public HeuristicMixedException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public HeuristicMixedException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
27
libjava/javax/transaction/HeuristicRollbackException.java
Normal file
27
libjava/javax/transaction/HeuristicRollbackException.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public class HeuristicRollbackException extends java.lang.Exception
|
||||
{
|
||||
public HeuristicRollbackException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public HeuristicRollbackException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
29
libjava/javax/transaction/InvalidTransactionException.java
Normal file
29
libjava/javax/transaction/InvalidTransactionException.java
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
import java.rmi.RemoteException;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date April 18, 2001
|
||||
*/
|
||||
|
||||
public class InvalidTransactionException extends RemoteException
|
||||
{
|
||||
public InvalidTransactionException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public InvalidTransactionException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
27
libjava/javax/transaction/NotSupportedException.java
Normal file
27
libjava/javax/transaction/NotSupportedException.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public class NotSupportedException extends java.lang.Exception
|
||||
{
|
||||
public NotSupportedException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public NotSupportedException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
27
libjava/javax/transaction/RollbackException.java
Normal file
27
libjava/javax/transaction/RollbackException.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public class RollbackException extends java.lang.Exception
|
||||
{
|
||||
public RollbackException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public RollbackException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
28
libjava/javax/transaction/Status.java
Normal file
28
libjava/javax/transaction/Status.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public abstract interface Status
|
||||
{
|
||||
public static final int STATUS_ACTIVE = 0;
|
||||
public static final int STATUS_MARKED_ROLLBACK = 1;
|
||||
public static final int STATUS_PREPARED = 2;
|
||||
public static final int STATUS_COMMITTED = 3;
|
||||
public static final int STATUS_ROLLEDBACK = 4;
|
||||
public static final int STATUS_UNKNOWN = 5;
|
||||
public static final int STATUS_NO_TRANSACTION = 6;
|
||||
public static final int STATUS_PREPARING = 7;
|
||||
public static final int STATUS_COMMITTING = 8;
|
||||
public static final int STATUS_ROLLING_BACK = 9;
|
||||
}
|
20
libjava/javax/transaction/Synchronization.java
Normal file
20
libjava/javax/transaction/Synchronization.java
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public abstract interface Synchronization
|
||||
{
|
||||
public void beforeCompletion();
|
||||
public void afterCompletion(int status);
|
||||
}
|
35
libjava/javax/transaction/SystemException.java
Normal file
35
libjava/javax/transaction/SystemException.java
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public class SystemException extends java.lang.Exception
|
||||
{
|
||||
public int errorCode;
|
||||
|
||||
public SystemException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public SystemException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public SystemException(int errcode)
|
||||
{
|
||||
super ();
|
||||
this.errorCode = errcode;
|
||||
}
|
||||
}
|
33
libjava/javax/transaction/Transaction.java
Normal file
33
libjava/javax/transaction/Transaction.java
Normal file
|
@ -0,0 +1,33 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
import javax.transaction.xa.XAResource;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public abstract interface Transaction
|
||||
{
|
||||
public void commit()
|
||||
throws RollbackException, HeuristicMixedException,
|
||||
HeuristicRollbackException, java.lang.SecurityException, SystemException;
|
||||
public boolean delistResource(XAResource xaRes, int flag)
|
||||
throws java.lang.IllegalStateException, SystemException;
|
||||
public boolean enlistResource(XAResource xaRes)
|
||||
throws RollbackException, java.lang.IllegalStateException, SystemException;
|
||||
public int getStatus() throws SystemException;
|
||||
public void registerSynchronization(Synchronization sync)
|
||||
throws RollbackException, java.lang.IllegalStateException, SystemException;
|
||||
public void rollback()
|
||||
throws java.lang.IllegalStateException, SystemException;
|
||||
public void setRollbackOnly()
|
||||
throws java.lang.IllegalStateException, SystemException;
|
||||
}
|
35
libjava/javax/transaction/TransactionManager.java
Normal file
35
libjava/javax/transaction/TransactionManager.java
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public abstract interface TransactionManager
|
||||
{
|
||||
public void begin() throws NotSupportedException, SystemException;
|
||||
public void commit()
|
||||
throws RollbackException, HeuristicMixedException,
|
||||
HeuristicRollbackException, java.lang.SecurityException,
|
||||
java.lang.IllegalStateException, SystemException;
|
||||
public int getStatus() throws SystemException;
|
||||
public Transaction getTransaction() throws SystemException;
|
||||
public void resume(Transaction tobj)
|
||||
throws InvalidTransactionException, java.lang.IllegalStateException,
|
||||
SystemException;
|
||||
public void rollback()
|
||||
throws java.lang.IllegalStateException, java.lang.SecurityException,
|
||||
SystemException;
|
||||
public void setRollbackOnly()
|
||||
throws java.lang.IllegalStateException, SystemException;
|
||||
public void setTransactionTimeout(int seconds) throws SystemException;
|
||||
public Transaction suspend() throws SystemException;
|
||||
}
|
29
libjava/javax/transaction/TransactionRequiredException.java
Normal file
29
libjava/javax/transaction/TransactionRequiredException.java
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
import java.rmi.RemoteException;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date April 18, 2001
|
||||
*/
|
||||
|
||||
public class TransactionRequiredException extends RemoteException
|
||||
{
|
||||
public TransactionRequiredException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public TransactionRequiredException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
import java.rmi.RemoteException;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date April 18, 2001
|
||||
*/
|
||||
|
||||
public class TransactionRolledbackException extends RemoteException
|
||||
{
|
||||
public TransactionRolledbackException ()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public TransactionRolledbackException (String msg)
|
||||
{
|
||||
super(msg);
|
||||
}
|
||||
}
|
30
libjava/javax/transaction/UserTransaction.java
Normal file
30
libjava/javax/transaction/UserTransaction.java
Normal file
|
@ -0,0 +1,30 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public abstract interface UserTransaction
|
||||
{
|
||||
public void begin() throws NotSupportedException, SystemException;
|
||||
public void commit()
|
||||
throws RollbackException, HeuristicMixedException,
|
||||
HeuristicRollbackException, java.lang.SecurityException,
|
||||
java.lang.IllegalStateException, SystemException;
|
||||
public void rollback()
|
||||
throws java.lang.IllegalStateException, java.lang.SecurityException,
|
||||
SystemException;
|
||||
public void setRollbackOnly()
|
||||
throws java.lang.IllegalStateException, SystemException;
|
||||
public int getStatus() throws SystemException;
|
||||
public void setTransactionTimeout(int seconds) throws SystemException;
|
||||
}
|
60
libjava/javax/transaction/xa/XAException.java
Normal file
60
libjava/javax/transaction/xa/XAException.java
Normal file
|
@ -0,0 +1,60 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction.xa;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date April 18, 2001
|
||||
*/
|
||||
|
||||
public class XAException extends Exception
|
||||
{
|
||||
public int errorCode;
|
||||
public static final int XA_RBBASE = 100;
|
||||
public static final int XA_RBROLLBACK = 100;
|
||||
public static final int XA_RBCOMMFAIL = 101;
|
||||
public static final int XA_RBDEADLOCK = 102;
|
||||
public static final int XA_RBINTEGRITY = 103;
|
||||
public static final int XA_RBOTHER = 104;
|
||||
public static final int XA_RBPROTO = 105;
|
||||
public static final int XA_RBTIMEOUT = 106;
|
||||
public static final int XA_RBTRANSIENT = 107;
|
||||
public static final int XA_RBEND = 107;
|
||||
public static final int XA_NOMIGRATE = 9;
|
||||
public static final int XA_HEURHAZ = 8;
|
||||
public static final int XA_HEURCOM = 7;
|
||||
public static final int XA_HEURRB = 6;
|
||||
public static final int XA_HEURMIX = 5;
|
||||
public static final int XA_RETRY = 4;
|
||||
public static final int XA_RDONLY = 3;
|
||||
public static final int XAER_ASYNC = -2;
|
||||
public static final int XAER_RMERR = -3;
|
||||
public static final int XAER_NOTA = -4;
|
||||
public static final int XAER_INVAL = -5;
|
||||
public static final int XAER_PROTO = -6;
|
||||
public static final int XAER_RMFAIL = -7;
|
||||
public static final int XAER_DUPID = -8;
|
||||
public static final int XAER_OUTSIDE = -9;
|
||||
|
||||
public XAException ()
|
||||
{
|
||||
super ();
|
||||
}
|
||||
|
||||
public XAException (String msg)
|
||||
{
|
||||
super (msg);
|
||||
}
|
||||
|
||||
public XAException (int errcode)
|
||||
{
|
||||
super ();
|
||||
this.errorCode = errcode;
|
||||
}
|
||||
}
|
40
libjava/javax/transaction/xa/XAResource.java
Normal file
40
libjava/javax/transaction/xa/XAResource.java
Normal file
|
@ -0,0 +1,40 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction.xa;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public abstract interface XAResource
|
||||
{
|
||||
public static final int TMENDRSCAN = 8388608;
|
||||
public static final int TMFAIL = 536870912;
|
||||
public static final int TMJOIN = 2097152;
|
||||
public static final int TMNOFLAGS = 0;
|
||||
public static final int TMONEPHASE = 1073741824;
|
||||
public static final int TMRESUME = 134217728;
|
||||
public static final int TMSTARTRSCAN = 16777216;
|
||||
public static final int TMSUCCESS = 67108864;
|
||||
public static final int TMSUSPEND = 33554432;
|
||||
public static final int XA_RDONLY = 3;
|
||||
public static final int XA_OK = 0;
|
||||
|
||||
public void commit(Xid xid, boolean onePhase) throws XAException;
|
||||
public void end(Xid xid, int flags) throws XAException;
|
||||
public void forget(Xid xid) throws XAException;
|
||||
public int getTransactionTimeout() throws XAException;
|
||||
public boolean isSameRM(XAResource xares) throws XAException;
|
||||
public int prepare(Xid xid) throws XAException;
|
||||
public Xid[] recover(int flag) throws XAException;
|
||||
public void rollback(Xid xid) throws XAException;
|
||||
public boolean setTransactionTimeout(int seconds) throws XAException;
|
||||
public void start(Xid xid, int flags) throws XAException;
|
||||
}
|
24
libjava/javax/transaction/xa/Xid.java
Normal file
24
libjava/javax/transaction/xa/Xid.java
Normal file
|
@ -0,0 +1,24 @@
|
|||
/* Copyright (C) 2001 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package javax.transaction.xa;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@redhat.com>
|
||||
* @date May 25, 2001
|
||||
*/
|
||||
|
||||
public abstract interface Xid
|
||||
{
|
||||
public static final int MAXGTRIDSIZE = 64;
|
||||
public static final int MAXBQUALSIZE = 64;
|
||||
|
||||
public int getFormatId();
|
||||
public byte[] getGlobalTransactionId();
|
||||
public byte[] getBranchQualifier();
|
||||
}
|
Loading…
Add table
Reference in a new issue