protected Set<String> getAllowedChildren(XModelEntity entity) { Set<String> children = super.getAllowedChildren(entity); if (isFileSystems(entity.getXMLSubPath())) { children.add("WEB"); // $NON-NLS-1$ children.add("web"); // $NON-NLS-1$ } return children; }
protected Set<String> getAllowedAttributes(XModelEntity entity) { Set<String> attributes = super.getAllowedAttributes(entity); if (isFileSystems(entity.getXMLSubPath())) { attributes.add("WORKSPACE_HOME"); // $NON-NLS-1$ attributes.add("workspace-home"); // $NON-NLS-1$ } return attributes; }
private static void _updateSrcs(XModelObject object) { IProject p = EclipseResourceUtil.getProject(object); if (p == null || !p.isAccessible()) return; String[] srcs = EclipseResourceUtil.getJavaProjectSrcLocations(p); Set<String> paths = new HashSet<String>(); for (int i = 0; i < srcs.length; i++) { String path = EclipseResourceUtil.getRelativeLocation(object.getModel(), srcs[i]); if (path == null) continue; paths.add(path); } XModelObject[] cs = object.getChildren(XModelObjectConstants.ENT_FILE_SYSTEM_FOLDER); for (int i = 0; i < cs.length; i++) { if (cs[i] .getAttributeValue(XModelObjectConstants.ATTR_NAME) .startsWith("src")) { // $NON-NLS-1$ String loc = cs[i].getAttributeValue(XModelObjectConstants.ATTR_NAME_LOCATION); if (!paths.contains(loc)) { object.removeChild(cs[i]); } else { paths.remove(loc); } } } for (String path : paths) { String n = getNextSrcName(object); Properties properties = new Properties(); properties.setProperty(XModelObjectConstants.ATTR_NAME_LOCATION, path); properties.setProperty(XModelObjectConstants.ATTR_NAME, n); FileSystemImpl s = (FileSystemImpl) object .getModel() .createModelObject(XModelObjectConstants.ENT_FILE_SYSTEM_FOLDER, properties); object.addChild(s); } }