ResourceElem newRes = new ResourceElem(true, urlContext); topRE = topRE.addChild(foName, newRes); resElemStack.push(topRE); ResourceElem newRes = new ResourceElem(false, urlContext); topRE = topRE.addChild(foName, newRes); resElemStack.push(topRE); XMLMapAttr attrMap = topRE.getAttr(true); Object retVal = attrMap.put(foName, attr);
ResourceElem addChild(String name, ResourceElem child) { if (!isFolder) { throw new IllegalArgumentException("not a folder"); // NOI18N } assert name != null && name.indexOf("/") == -1:(child.isFolder ? "<folder name=":"<file name=")+name+" ...";//NOI18N ResourceElem retVal = child; int idx = names.indexOf(name); if (idx == -1) { names.add(name); children.add(child); } else { // already exists retVal = children.get(idx); Set<URL> mergedContext = new HashSet<URL>(); mergedContext.addAll(Arrays.asList(retVal.getUrlContext())); mergedContext.addAll(Arrays.asList(child.getUrlContext())); retVal.setUrlContext(mergedContext); } return retVal; }
@Override public void endElement(String uri, String lname, String name) throws SAXException { if ((elementStack.peek().hashCode() == FILE_CODE) && !topRE.isFolder()) { String string = pcdata.toString().trim(); topRE.setContent(string.length() > 0 ? string.getBytes() : null, this.uri, weight); pcdata.setLength(0); } int controlCode = name.hashCode(); elementStack.pop(); if ((controlCode == FOLDER_CODE) || (controlCode == FILE_CODE)) { resElemStack.pop(); topRE = resElemStack.peek(); return; } }
if (urls.length == 0) { urlsToXml = new URL[]{}; refreshChildrenInAtomicAction((AbstractFolder) getRoot(), rootElem = new ResourceElem(true, urls, null)); // NOI18N rootElem = null; return; Handler handler = new Handler(DTD_MAP, rootElem = new ResourceElem(true, urls, null), validate); // NOI18N
if (urls.length == 0) { urlsToXml = new URL[]{}; refreshChildrenInAtomicAction((AbstractFolder) getRoot(), rootElem = new ResourceElem(true, urls, null)); // NOI18N rootElem = null; return; Handler handler = new Handler(DTD_MAP, rootElem = new ResourceElem(true, urls, null), validate); // NOI18N
ResourceElem newRes = new ResourceElem (true, urlContext, null); topRE = topRE.addChild (foName, newRes); resElemStack.push(topRE); return ; ResourceElem newRes = new ResourceElem (false, urlContext, uri); topRE = topRE.addChild (foName, newRes); resElemStack.push(topRE); if (XMLMapAttr.Attr.isValid(key) != -1) { XMLMapAttr.Attr attr = XMLMapAttr.createAttributeAndDecode(key,value); XMLMapAttr attrMap = topRE.getAttr (true); Object retVal = attrMap.put(foName,attr); if (retVal != null)
ResourceElem newRes = new ResourceElem (true, urlContext, null); topRE = topRE.addChild (foName, newRes); resElemStack.push(topRE); return ; ResourceElem newRes = new ResourceElem (false, urlContext, uri); topRE = topRE.addChild (foName, newRes); resElemStack.push(topRE); if (XMLMapAttr.Attr.isValid(key) != -1) { XMLMapAttr.Attr attr = XMLMapAttr.createAttributeAndDecode(key,value); XMLMapAttr attrMap = topRE.getAttr (true); Object retVal = attrMap.put(foName,attr); if (retVal != null)
/** refreshes children recursively.*/ private void refreshChildren (AbstractFolder fo, ResourceElem resElem) { if (fo.isRoot()) initializeReference (rootRef = new FileObjRef (fo), resElem); java.util.List nameList = resElem.getChildren (); String[] names = new String[nameList.size ()]; ResourceElem[] children = new ResourceElem[names.length]; nameList.toArray(names); for (int i = 0; i < names.length; i++) children[i] = resElem.getChild (names[i]); fo.refresh(null, null, true, true, names); for (int i = 0; i < children.length; i++) { AbstractFolder fo2 = (AbstractFolder)fo.getFileObject (names[i]); FileObjRef currentRef = (FileObjRef )findReference (fo2.getPath ()); initializeReference (currentRef, children[i]); fo2.lastModified(); if (fo2.isFolder()) refreshChildren (fo2,children[i]); } }
/** refreshes children recursively.*/ private void refreshChildren (AbstractFolder fo, ResourceElem resElem) { if (fo.isRoot()) initializeReference (rootRef = new FileObjRef (fo), resElem); java.util.List nameList = resElem.getChildren (); String[] names = new String[nameList.size ()]; ResourceElem[] children = new ResourceElem[names.length]; nameList.toArray(names); for (int i = 0; i < names.length; i++) children[i] = resElem.getChild (names[i]); fo.refresh(null, null, true, true, names); for (int i = 0; i < children.length; i++) { AbstractFolder fo2 = (AbstractFolder)fo.getFileObject (names[i]); FileObjRef currentRef = (FileObjRef )findReference (fo2.getPath ()); initializeReference (currentRef, children[i]); fo2.lastModified(); if (fo2.isFolder()) refreshChildren (fo2,children[i]); } }
public void endElement(String name) throws SAXException { if (elementStack.peek().hashCode() == FILE_CODE && !topRE.isFolder ()) { String string = pcdata.toString().trim(); if (string.length() > 0) { topRE.setContent (string.getBytes()); } pcdata.setLength(0); } int controlCode = name.hashCode(); elementStack.pop(); if (controlCode == FOLDER_CODE || controlCode == FILE_CODE) { resElemStack.pop(); topRE = (ResourceElem)resElemStack.peek(); return ; } }
public void endElement(String name) throws SAXException { if (elementStack.peek().hashCode() == FILE_CODE && !topRE.isFolder ()) { String string = pcdata.toString().trim(); if (string.length() > 0) { topRE.setContent (string.getBytes()); } pcdata.setLength(0); } int controlCode = name.hashCode(); elementStack.pop(); if (controlCode == FOLDER_CODE || controlCode == FILE_CODE) { resElemStack.pop(); topRE = (ResourceElem)resElemStack.peek(); return ; } }
public void characters(char[] ch, int start, int length) throws SAXException { if (elementStack.peek().hashCode() != FILE_CODE) return; if (topRE.isFolder ()) return; pcdata.append(new String(ch,start,length)); }
private void initializeReference (FileObjRef currentRef, ResourceElem resElem) { if (!currentRef.isInitialized ()) currentRef.initialize (resElem); else { currentRef.attacheAttrs (resElem.getAttr (false)); currentRef.setUrlContext (resElem.getUrlContext ()); if (resElem.getContent() != null) { currentRef.content = resElem.getContent(); } else if (resElem.getURI() != null) { currentRef.content = resElem.getURI(); } } }
public void initialize (ResourceElem res) { content = res.getContent (); XMLMapAttr tmp = res.getAttr (false); if (tmp != null && !tmp.isEmpty()) { foAttrs = tmp; } isFolder = (byte)(res.isFolder ()?1:0); if (content == null) content = res.getURI (); setUrlContext (res.getUrlContext ()); }
private void initializeReference (FileObjRef currentRef, ResourceElem resElem) { if (!currentRef.isInitialized ()) currentRef.initialize (resElem); else { currentRef.attacheAttrs (resElem.getAttr (false)); currentRef.setUrlContext (resElem.getUrlContext ()); if (resElem.getContent() != null) { currentRef.content = resElem.getContent(); } else if (resElem.getURI() != null) { currentRef.content = resElem.getURI(); } } }
public void characters(char[] ch, int start, int length) throws SAXException { if (elementStack.peek().hashCode() != FILE_CODE) return; if (topRE.isFolder ()) return; pcdata.append(new String(ch,start,length)); }
public void initialize (ResourceElem res) { content = res.getContent (); XMLMapAttr tmp = res.getAttr (false); if (tmp != null && !tmp.isEmpty()) { foAttrs = tmp; } isFolder = (byte)(res.isFolder ()?1:0); if (content == null) content = res.getURI (); setUrlContext (res.getUrlContext ()); }
refreshChildrenInAtomicAction((AbstractFolder) getRoot(), rootElem = new ResourceElem(true, urls)); // NOI18N rootElem = null; Handler handler = new Handler(DTD_MAP, rootElem = new ResourceElem(true, urls), validate); // NOI18N
/** refreshes children recursively.*/ private void refreshChildren(AbstractFolder fo, ResourceElem resElem) { if (fo.isRoot()) { initializeReference(rootRef = new FileObjRef<AbstractFolder>(fo), resElem); } java.util.List<String> nameList = resElem.getChildren(); String[] names = new String[nameList.size()]; ResourceElem[] children = new ResourceElem[names.length]; nameList.toArray(names); for (int i = 0; i < names.length; i++) children[i] = resElem.getChild(names[i]); fo.refresh(null, null, true, true, names); for (int i = 0; i < children.length; i++) { AbstractFolder fo2 = (AbstractFolder) fo.getFileObject(names[i]); FileObjRef currentRef = (FileObjRef) findReference(fo2.getPath()); int diff = initializeReference(currentRef, children[i]); fo2.lastModified(); if (fo2.isFolder()) { refreshChildren(fo2, children[i]); } else { if ((diff & 0x01) != 0) { fo2.fileChanged0(new FileEvent(fo2)); } else { if ((diff & 0x02) != 0) { fo2.fileAttributeChanged0(new FileAttributeEvent(fo2, null, null, null)); } } } } }
/** Initialize a reference with parsed element. * @param currentRef the reference * @param resElem the new element * @return ret&0x01 if content changed, ret&0x02 if attributes changed. */ private int initializeReference(FileObjRef currentRef, ResourceElem resElem) { if (!currentRef.isInitialized()) { currentRef.initialize(resElem); return 0x00; } else { boolean attrDiff = currentRef.attacheAttrs(resElem.getAttr(false)); currentRef.setUrlContext(resElem.getUrlContext()); boolean diff = false; if (resElem.getContent() != null) { diff = !(currentRef.content instanceof byte[]) || !java.util.Arrays.equals((byte[])currentRef.content, resElem.getContent()); currentRef.content = resElem.getContent(); } else if (resElem.getURI() != null) { diff = !resElem.getURI().equals(currentRef.content); currentRef.content = resElem.getURI(); } return (diff ? 0x01 : 0x00) + (attrDiff ? 0x02 : 0x00); } }