You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2006/08/18 01:42:45 UTC
svn commit: r432434 - in
/geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context:
AbstractContext.java AbstractUnmodifiableContext.java WritableContext.java
Author: dain
Date: Thu Aug 17 16:42:44 2006
New Revision: 432434
URL: http://svn.apache.org/viewvc?rev=432434&view=rev
Log:
Fixed compile errors in subclasses of AbstractUnmodifiableContext by renaming internalBind method to lookup and implementing the addBinding and removeBinding methods as OperationNotSupportedException.
Modified:
geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractContext.java
geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractUnmodifiableContext.java
geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/WritableContext.java
Modified: geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractContext.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractContext.java?rev=432434&r1=432433&r2=432434&view=diff
==============================================================================
--- geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractContext.java (original)
+++ geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractContext.java Thu Aug 17 16:42:44 2006
@@ -45,9 +45,9 @@
}
protected abstract void removeBindings(Name name) throws NamingException;
- protected abstract Object internalLookup(Name name, boolean resolveLinks) throws NamingException;
+ protected abstract Object lookup(String stringName, Name parsedName) throws NamingException;
protected abstract void addBinding(Name name, Object obj, boolean rebind) throws NamingException;
- protected abstract Map getBindingsCopy();
+ protected abstract Map getBindings() throws NamingException;
/**
* Gets the name of this context withing the global namespace. This method may return null
@@ -147,7 +147,7 @@
public Object lookup(Name name) throws NamingException {
if (name == null) throw new NullPointerException("name is null");
- Object value = internalLookup(name, true);
+ Object value = lookup(null, name);
// if we got a link back we need to resolve it
@@ -166,7 +166,7 @@
public Object lookupLink(Name name) throws NamingException {
if (name == null) throw new NullPointerException("name is null");
- return internalLookup(name, false);
+ return lookup(null, name);
}
//
@@ -245,7 +245,7 @@
public NamingEnumeration list(Name name) throws NamingException {
if (name == null) throw new NullPointerException("name is null");
if (name.isEmpty()) {
- return new ContextUtil.ListEnumeration(getBindingsCopy());
+ return new ContextUtil.ListEnumeration(getBindings());
}
Object target = lookup(name);
if (target instanceof Context) {
@@ -262,7 +262,7 @@
public NamingEnumeration listBindings(Name name) throws NamingException {
if (name == null) throw new NullPointerException("name is null");
if (name.isEmpty()) {
- return new ContextUtil.ListBindingEnumeration(getBindingsCopy());
+ return new ContextUtil.ListBindingEnumeration(getBindings());
}
Object target = lookup(name);
if (target instanceof Context) {
Modified: geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractUnmodifiableContext.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractUnmodifiableContext.java?rev=432434&r1=432433&r2=432434&view=diff
==============================================================================
--- geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractUnmodifiableContext.java (original)
+++ geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/AbstractUnmodifiableContext.java Thu Aug 17 16:42:44 2006
@@ -41,6 +41,14 @@
super(nameInNamespace);
}
+ protected final void addBinding(Name name, Object obj, boolean rebind) throws NamingException {
+ throw new OperationNotSupportedException("Context is read only");
+ }
+
+ protected final void removeBindings(Name name) throws NamingException {
+ throw new OperationNotSupportedException("Context is read only");
+ }
+
//
// Lookup Binding
//
@@ -65,8 +73,11 @@
}
/**
- * Finds the specified entry. Normally there is no need to override this method; insted you should
- * simply implement the getBindings(String) method.
+ * Finds the specified entry. Normally there is no need to override this method; instead you should
+ * simply implement the getDeepBindings(String) and getBindings(String) method.
+ *
+ * This method will follow links except for the final element which is always just returned without
+ * inspection. This means this method can be used to implement lookupLink.
*
* @param stringName the string version of the name; maybe null
* @param parsedName the parsed name; may be null
Modified: geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/WritableContext.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/WritableContext.java?rev=432434&r1=432433&r2=432434&view=diff
==============================================================================
--- geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/WritableContext.java (original)
+++ geronimo/xbean/branches/colossus/xbean-naming/src/main/java/org/apache/xbean/naming/context/WritableContext.java Thu Aug 17 16:42:44 2006
@@ -73,26 +73,28 @@
}
}
- protected Object internalLookup(Name name, boolean resolveLinks) throws NamingException {
+ protected Object lookup(String stringName, Name parsedName) throws NamingException {
+ if (parsedName == null) parsedName = getNameParser().parse(stringName);
+
Object result = null;
Map bindings = this.bindings;
Object terminalContext = null;
- if (name.isEmpty()) {
+ if (parsedName.isEmpty()) {
return this;
}
- int index = name.get(0).indexOf(':');
+ int index = parsedName.get(0).indexOf(':');
if (index != -1) {
- String temp = name.get(0).substring(index + 1);
- name.remove(0);
- name.add(0, temp);
+ String temp = parsedName.get(0).substring(index + 1);
+ parsedName.remove(0);
+ parsedName.add(0, temp);
}
- if (name.size() == 1) {
- result = bindings.get(name.toString());
+ if (parsedName.size() == 1) {
+ result = bindings.get(parsedName.toString());
} else {
String segment = null;
- int lastIndex = name.size() - 1;
+ int lastIndex = parsedName.size() - 1;
for (int i = 0; i < lastIndex; i++) {
- segment = name.get(i);
+ segment = parsedName.get(i);
terminalContext = bindings.get(segment);
if (terminalContext == null) {
throw new NamingException("The intermediate context "
@@ -106,7 +108,7 @@
bindings = ((WritableContext) terminalContext).bindings;
}
}
- segment = name.get(lastIndex);
+ segment = parsedName.get(lastIndex);
result = ((Context) terminalContext).lookup(segment);
}
@@ -157,7 +159,7 @@
}
}
- protected Map getBindingsCopy() {
+ protected Map getBindings() {
return bindings;
}
}