# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: /doma/jarda/netbeans-src/core/startup # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: test/unit/src/org/netbeans/core/startup/layers/CacheManagerTestBaseHid.java *** /doma/jarda/netbeans-src/core/startup/test/unit/src/org/netbeans/core/startup/layers/CacheManagerTestBaseHid.java Base (1.1) --- /doma/jarda/netbeans-src/core/startup/test/unit/src/org/netbeans/core/startup/layers/CacheManagerTestBaseHid.java Locally Modified (Based On 1.1) *************** *** 19,24 **** --- 19,25 ---- import java.util.Arrays; import java.util.Collections; import java.util.List; + import java.util.Map; import org.netbeans.junit.NbTestCase; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileSystem; *************** *** 37,42 **** --- 38,50 ---- return String.valueOf(fo.getAttribute("x")) + "/" + attr; } + public static Object map1(Map map) { + return String.valueOf(map.get("x")); + } + public static Object map2(Map map, String attr) { + return String.valueOf(map.get("x")) + "/" + attr; + } + protected CacheManagerTestBaseHid(String name) { super(name); } *************** *** 128,133 **** --- 136,143 ---- assertEquals("val", attr(ffs, "foo/29356", "x")); assertEquals("val", attr(mfs, "foo/29356", "x")); assertEquals("val/a", attr(mfs, "foo/29356", "a")); + assertEquals("val", attr(mfs, "foo/29356", "map1")); + assertEquals("val/map2", attr(mfs, "foo/29356", "map2")); } private static String slurp(FileSystem f, String path) throws IOException { Index: src/org/netbeans/core/startup/layers/BinaryFS.java *** /doma/jarda/netbeans-src/core/startup/src/org/netbeans/core/startup/layers/BinaryFS.java Base (1.7) --- /doma/jarda/netbeans-src/core/startup/src/org/netbeans/core/startup/layers/BinaryFS.java Locally Modified (Based On 1.7) *************** *** 26,38 **** --- 26,42 ---- import java.nio.ByteOrder; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; + import java.util.AbstractMap; + import java.util.AbstractSet; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.Enumeration; import java.util.HashMap; + import java.util.Iterator; import java.util.Map; + import java.util.Set; import java.util.StringTokenizer; import org.openide.ErrorManager; import org.openide.filesystems.FileChangeListener; *************** *** 490,495 **** --- 494,503 ---- objArray[2] = new Object[] {attr,fo}; break; } + if (paramClss[0].isAssignableFrom(Map.class) && paramClss[1].isAssignableFrom(sParam)) { + methArray[2] = allMethods[j]; + objArray[2] = new Object[]{wrapToMap(fo),attr}; + } continue; } *************** *** 505,510 **** --- 513,522 ---- objArray[1] = new Object[] {attr}; continue; } + if (paramClss[0].isAssignableFrom(Map.class)) { + methArray[2] = allMethods[j]; + objArray[2] = new Object[]{wrapToMap(fo)}; + } continue; } } *************** *** 791,797 **** --- 803,903 ---- } } + + static final Map wrapToMap(FileObject fo) { + return fo == null ? Collections.emptyMap() : new FileMap(fo); } + + + private static final class FileMap extends AbstractMap { + private FileObject fo; + + private FileMap(FileObject fo) { + this.fo = fo; + } + + public Set> entrySet() { + return new AttrFileSet(fo); + } + + public Object get(String key) { + return fo.getAttribute(key); + } + + public Object remove(Object key) { + throw new UnsupportedOperationException(); + } + + public Object put(String key, Object value) { + throw new UnsupportedOperationException(); + } + + } + private static final class AttrFileSet extends AbstractSet> { + private FileObject fo; + + private AttrFileSet(FileObject fo) { + this.fo = fo; + } + + public Iterator> iterator() { + class Iter implements Iterator> { + Enumeration attrs = (Enumeration)fo.getAttributes(); + + public boolean hasNext() { + return attrs.hasMoreElements(); + } + + public Map.Entry next() { + String s = attrs.nextElement(); + return new FOEntry(fo, s); + } + + public void remove() { + throw new UnsupportedOperationException(); + } + } + return new Iter(); + } + + public int size() { + Enumeration all = fo.getAttributes(); + int cnt = 0; + while (all.hasMoreElements()) { + cnt++; + all.nextElement(); + } + return cnt; + } + + public boolean remove(Object o) { + throw new UnsupportedOperationException(); + } + } // end of AttrFileSet + + private static final class FOEntry implements Map.Entry { + private FileObject fo; + private String attr; + + private FOEntry(FileObject fo, String attr) { + this.fo = fo; + this.attr = attr; + } + + public String getKey() { + return attr; + } + + public Object getValue() { + return fo.getAttribute(attr); + } + + public Object setValue(Object value) { + throw new UnsupportedOperationException(); + } + } // end of FOEntry + } Index: test/unit/src/org/netbeans/core/startup/layers/data/layer1.xml *** /doma/jarda/netbeans-src/core/startup/test/unit/src/org/netbeans/core/startup/layers/data/layer1.xml Base (1.1) --- /doma/jarda/netbeans-src/core/startup/test/unit/src/org/netbeans/core/startup/layers/data/layer1.xml Locally Modified (Based On 1.1) *************** *** 10,15 **** --- 10,17 ---- + +