parent = f;
for (Iterator it = s.iterator(); it.hasNext();){ if (it.next() == f) { return true; } } return false;
return o != null && (this.map.equals(o.map) && ((this.parent == null && o.parent == null) || (this.parent != null && this.parent.equals(o.parent))));
return this == o || (o != null && o instanceof Frame && this.equals((Frame) o));
if (parent == null){ return new HashSet(); } else { Set ancestors = parent.getAncestors(); ancestors.add(this); return ancestors; }
return map.hashCode();
if (contains(getAncestors(),f) || contains(f.getAncestors(),this)){ throw new IllegalArgumentException("Inheriting from an ancestor is illegal - it causes loops!"); } parent = f; return this;
return (map.get(s) != null ? (String) map.get(s) : parent.lookup(s));
return new Frame( new Frame(){ String lookup(String s){ return (System.getProperty(s) != null ? System.getProperty(s) : "${"+s+"}"); } public String toString(){ return "[]"; } } );
return new Frame(f);
map.put(key, value); return this;
StringBuffer sb = new StringBuffer("["); for (Iterator it = map.entrySet().iterator(); it.hasNext();){ Map.Entry e = (Map.Entry) it.next(); sb.append(e.getKey() + "->" + e.getValue()); if (it.hasNext()){ sb.append(", "); } } sb.append(" "+parent +"]"); return sb.toString();