void setTileContent(TileEntity entity, int level, boolean undo) { if (!isFlat()) { return; } if (entity instanceof Roof) { for (TileEntity e : entities.values()) { if (e instanceof Roof) { return; } } } final EntityData entityData = new EntityData(level, EntityType.FLOORROOF); if (entity != entities.get(entityData)) { Tile oldTile = new Tile(this); if (entity != null) { entities.put(entityData, entity); } else { entities.remove(entityData); } if (undo) { map.addUndo(this, oldTile); } } }
void setGameObject(GameObjectData data, ObjectLocation location, int floor, boolean undo) { Tile oldTile = new Tile(this); if (data != null) { entities.put(new ObjectEntityData(floor, location), new GameObject(data)); } else { entities.remove(new ObjectEntityData(floor, location)); } if (undo) { map.addUndo(this, oldTile); } }
/* * public HashMap getLeafElements() { HashMap map = new HashMap(); Object[] * elts = dataElements.values().toArray(); for (int j=0; j<elts.length; j++) * { PDMDataElement data = (PDMDataElement) elts[j]; * map.put(data.getID(),data); } Object[] ops = * operations.values().toArray(); for (int i=0; i<ops.length; i++){ * PDMOperation op = (PDMOperation) ops[i]; if * (!(op.getInputElements().isEmpty())){ HashMap outs = * op.getOutputElements(); Object[] outArray = outs.values().toArray(); for * (int j=0; j<outArray.length; j++) { PDMDataElement d = (PDMDataElement) * outArray[j]; map.remove(d.getID()); } } } return map; } */ public HashMap getLeafElements() { HashMap result = new HashMap(); HashSet leafOps = getLeafOperations(); if (!(leafOps.isEmpty())) { Iterator it = leafOps.iterator(); while (it.hasNext()) { PDMOperation op = (PDMOperation) it.next(); PDMDataElement data = op.getOutputElement(); result.put(data.getID(), data); } } else { Object[] elts = dataElements.values().toArray(); for (int j = 0; j < elts.length; j++) { PDMDataElement data = (PDMDataElement) elts[j]; result.put(data.getID(), data); } Object[] ops = operations.values().toArray(); for (int i = 0; i < ops.length; i++) { PDMOperation op = (PDMOperation) ops[i]; HashMap outs = op.getOutputElements(); Object[] outArray = outs.values().toArray(); for (int j = 0; j < outArray.length; j++) { PDMDataElement d = (PDMDataElement) outArray[j]; result.remove(d.getID()); } } } return result; }
void setVerticalBorder(BorderData border, boolean undo) { final EntityData entityData = new EntityData(0, EntityType.VBORDER); if (border != entities.get(entityData)) { Tile oldTile = new Tile(this); if (border != null) { entities.put(entityData, border); } else { entities.remove(entityData); } if (undo) { map.addUndo(this, oldTile); } } }
void setVerticalWall(WallData wall, int level, boolean undo) { if (wall != null && wall.houseWall) { if (!(isFlat() || map.getTile(this, -1, 0).isFlat())) { return; } } final EntityData entityData; if (wall != null && wall.houseWall) { entityData = new EntityData(level, EntityType.VWALL); } else if (wall != null) { entityData = new EntityData(level, EntityType.VFENCE); } else { entityData = null; } final EntityData wallEntity = new EntityData(level, EntityType.VWALL); final EntityData fenceEntity = new EntityData(level, EntityType.VFENCE); final Wall currentWall = (Wall) entities.get(wallEntity); final Wall currentFence = (Wall) entities.get(fenceEntity); boolean reversed; if (wall != null && wall.houseWall) { if (Globals.autoReverseWall) { reversed = getTileContent(level) == null && map.getTile(this, -1, 0).getTileContent(level) != null; if (reversed == false) { reversed = Globals.reverseWall; } } else { reversed = Globals.reverseWall; } } else { reversed = false; } if (!(new Wall(wall, reversed).equals(entities.get(entityData)))) { Tile oldTile = new Tile(this); if (wall != null) { entities.put(entityData, new Wall(wall, reversed)); if (wall.houseWall && !(wall.arch && currentFence != null && currentFence.data.archBuildable)) { entities.remove(fenceEntity); } else if (!wall.houseWall && !(wall.archBuildable && currentWall != null && currentWall.data.arch)) { entities.remove(wallEntity); } } else { entities.remove(wallEntity); entities.remove(fenceEntity); } if (undo) { map.addUndo(this, oldTile); } } }
public static void traverseAMLforObjectNames( HashMap partialMap, Node currentNode, HashMap ObjDef_LinkId, HashMap ModelId_ModelType) { if (currentNode.hasChildNodes()) { for (int i = 0; i < currentNode.getChildNodes().getLength(); i++) { Node currentChild = currentNode.getChildNodes().item(i); if (currentChild.getNodeName().equals("Group")) { traverseAMLforObjectNames(partialMap, currentChild, ObjDef_LinkId, ModelId_ModelType); } if (currentChild.getNodeName().equals("Model")) { if (currentChild.hasAttributes()) { String mid = currentChild.getAttributes().getNamedItem("Model.ID").getNodeValue(); String type = currentChild.getAttributes().getNamedItem("Model.Type").getNodeValue(); ModelId_ModelType.put(mid, type); } // traverseAMLforObjectNames(partialMap, currentChild, // ObjDef_LinkId); } if (currentChild.getNodeName().equals("ObjDef")) { String id = currentChild.getAttributes().getNamedItem("ObjDef.ID").getNodeValue(); NodeList currentChildren = currentChild.getChildNodes(); String ObjName = ""; for (int k = 0; k < currentChildren.getLength(); k++) { Node Child = currentChildren.item(k); if (!Child.getNodeName().equals("AttrDef")) { continue; } else if (!Child.getAttributes() .getNamedItem("AttrDef.Type") .getNodeValue() .equals("AT_NAME")) { continue; } else if (Child.hasChildNodes()) { for (int l = 0; l < Child.getChildNodes().getLength(); l++) { if (!(Child.getChildNodes().item(l).getNodeName().equals("AttrValue"))) { continue; } else { ObjName = getTextContent(Child.getChildNodes().item(l)); ObjName = ObjName.replaceAll("\n", "\\\\n"); break; } } } } partialMap.put(id, ObjName); for (int j = 0; j < currentChild.getAttributes().getLength(); j++) { if (currentChild.getAttributes().item(j).getNodeName().equals("LinkedModels.IdRefs")) { String links = currentChild.getAttributes().getNamedItem("LinkedModels.IdRefs").getNodeValue(); /* * if (links.indexOf(" ") > -1) { * Message.add("yes, yes, yes"); links = * links.substring(0, links.indexOf(" ")); } */ ObjDef_LinkId.put(id, links); } } } } } }
void declare(Namespace n) { if (map.get(n.prefix) == null) { map.put(n.prefix, n.uri); } // TODO I think this is analogous to the other way, but have not really thought it // through ... should local scope // matter more than outer scope? if (uriToPrefix.get(n.uri) == null) { uriToPrefix.put(n.uri, n.prefix); } }
/** * Returns a HashSet with the operations that have data element 'data' as output element. * * @param data PDMDataElement * @return HashSet */ public HashSet getOperationsWithOutputElement(PDMDataElement data) { HashSet opso = new HashSet(); Object[] ops = operations.values().toArray(); for (int i = 0; i < ops.length; i++) { PDMOperation op = (PDMOperation) ops[i]; HashMap outputs = op.getOutputElements(); if (outputs.containsValue(data)) { opso.add(op); } } return opso; }
Namespace[] getNamespaces() { Iterator i = map.keySet().iterator(); ArrayList rv = new ArrayList(); while (i.hasNext()) { String prefix = (String) i.next(); String uri = (String) map.get(prefix); Namespace n = Namespace.create(prefix, uri); if (!n.isEmpty()) { rv.add(n); } } return (Namespace[]) rv.toArray(new Namespace[0]); }
private void processFilter(Session session, Element element, HashMap additionalInformation) { String match = getAttribute(element, SessionAttribute.FILTER_MATCH.getText()); String showAllTracks = getAttribute(element, SessionAttribute.FILTER_SHOW_ALL_TRACKS.getText()); String filterName = getAttribute(element, SessionAttribute.NAME.getText()); TrackFilter filter = new TrackFilter(filterName, null); additionalInformation.put(SessionElement.FILTER, filter); NodeList elements = element.getChildNodes(); process(session, elements, additionalInformation); // Save the filter session.setFilter(filter); // Set filter properties if ("all".equalsIgnoreCase(match)) { IGV.getInstance().setFilterMatchAll(true); } else if ("any".equalsIgnoreCase(match)) { IGV.getInstance().setFilterMatchAll(false); } if ("true".equalsIgnoreCase(showAllTracks)) { IGV.getInstance().setFilterShowAllTracks(true); } else { IGV.getInstance().setFilterShowAllTracks(false); } }
/** * Writes the model to DOT. * * @param bw The writer * @throws IOException If writing fails */ public void writeToDot(Writer bw) throws IOException { // super.writeToDot(bw); // Preamble of dot file bw.write( "digraph G {ranksep=\".3\"; fontsize=\"8\"; remincross=true; margin=\"0.0,0.0\"; rankdir=TB; "); bw.write("fontname=\"Arial\"; \n"); bw.write("edge [arrowsize=\"0.5\"];\n"); bw.write("node [fontname=\"Arial\",fontsize=\"8\"];\n"); // Add the Data Element nodes Iterator it = getVerticeList().iterator(); while (it.hasNext()) { Object object = it.next(); if (object instanceof PDMDataElement) { ((PDMDataElement) object).writeToDot(bw, this); } } // Add all edges it = operations.values().iterator(); while (it.hasNext()) { Object object = it.next(); if (object instanceof PDMOperation) { ((PDMOperation) object).writeToDot(bw, this); } } bw.write("\n}\n"); }
/** * Returns a HashMap with the preceeding data elements of data element 'data' * * @param data PDMDataElement * @return HashMap */ public HashMap getPrecedingElements(PDMDataElement data) { HashMap precs = new HashMap(); Object[] ops = operations.values().toArray(); for (int i = 0; i < ops.length; i++) { PDMOperation op = (PDMOperation) ops[i]; if (op.getOutputElements().containsValue(data)) { HashMap ins = op.getInputElements(); Object[] inputs = ins.values().toArray(); for (int j = 0; j < inputs.length; j++) { PDMDataElement el = (PDMDataElement) inputs[j]; precs.put(el.getID(), el); } } } return precs; }
public void render2d(GL2 g) { for (Entry<EntityData, TileEntity> e : entities.entrySet()) { EntityData key = e.getKey(); TileEntity entity = e.getValue(); g.glPushMatrix(); switch (key.getType()) { case VBORDER: g.glRotatef(90, 0, 0, 1); BorderData vBorder = (BorderData) entity; if (Globals.upCamera) { vBorder.render(g, this); } g.glColor3f(1, 1, 1); break; case HBORDER: BorderData hBorder = (BorderData) entity; if (Globals.upCamera) { hBorder.render(g, this); } g.glColor3f(1, 1, 1); break; } g.glPopMatrix(); g.glColor3f(1, 1, 1); } }
public Materials getMaterials(boolean withRight, boolean withTop) { Materials materials = new Materials(); entities .values() .stream() .forEach( (entity) -> { materials.put(entity.getMaterials()); }); if (withRight) { for (int i = 0; i < Constants.FLOORS_LIMIT; i++) { Wall wall = map.getTile(this, 1, 0).getVerticalWall(i); Wall fence = map.getTile(this, 1, 0).getVerticalFence(i); if (wall != null) { materials.put(wall.getMaterials()); } if (fence != null) { materials.put(fence.getMaterials()); } } } if (withTop) { for (int i = 0; i < Constants.FLOORS_LIMIT; i++) { Wall wall = map.getTile(this, 0, 1).getHorizontalWall(i); Wall fence = map.getTile(this, 0, 1).getHorizontalFence(i); if (wall != null) { materials.put(wall.getMaterials()); } if (fence != null) { materials.put(fence.getMaterials()); } } } return materials; }
public Tile(Map map, Tile tile, int x, int y) { this.map = map; this.x = x; this.y = y; this.height = tile.height; this.ground = tile.ground; this.cave = tile.cave; this.label = tile.label; HashMap<EntityData, TileEntity> entities = new HashMap<>(); for (Entry<EntityData, TileEntity> entrySet : tile.entities.entrySet()) { EntityData key = entrySet.getKey(); TileEntity value = entrySet.getValue(); entities.put(key, value.deepCopy()); } this.entities = new HashMap(tile.entities); }
/** extracts attachments from PDF File */ @SuppressWarnings("unchecked") protected Map extractAttachments(PdfReader reader) throws IOException { Map fileMap = new HashMap(); PdfDictionary catalog = reader.getCatalog(); PdfDictionary names = (PdfDictionary) PdfReader.getPdfObject(catalog.get(PdfName.NAMES)); if (names != null) { PdfDictionary embFiles = (PdfDictionary) PdfReader.getPdfObject(names.get(new PdfName("EmbeddedFiles"))); if (embFiles != null) { HashMap embMap = PdfNameTree.readTree(embFiles); for (Iterator i = embMap.values().iterator(); i.hasNext(); ) { PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); Object fileInfo[] = unpackFile(reader, filespec); if (fileMap.containsKey(fileInfo[0])) { throw new RuntimeException(DUPLICATE_FILE_NAMES); } fileMap.put(fileInfo[0], fileInfo[1]); } } } for (int k = 1; k <= reader.getNumberOfPages(); ++k) { PdfArray annots = (PdfArray) PdfReader.getPdfObject(reader.getPageN(k).get(PdfName.ANNOTS)); if (annots == null) { continue; } for (Iterator i = annots.getArrayList().listIterator(); i.hasNext(); ) { PdfDictionary annot = (PdfDictionary) PdfReader.getPdfObject((PdfObject) i.next()); PdfName subType = (PdfName) PdfReader.getPdfObject(annot.get(PdfName.SUBTYPE)); if (!PdfName.FILEATTACHMENT.equals(subType)) { continue; } PdfDictionary filespec = (PdfDictionary) PdfReader.getPdfObject(annot.get(PdfName.FS)); Object fileInfo[] = unpackFile(reader, filespec); if (fileMap.containsKey(fileInfo[0])) { throw new RuntimeException(DUPLICATE_FILE_NAMES); } fileMap.put(fileInfo[0], fileInfo[1]); } } return fileMap; }
public boolean addNodeLayout(String pid, String id, String c, double x, double y) { /*if(idToNode.containsKey(pid + id)){ return false; } */ NodeLayout newNode = new NodeLayout(pid, id, c, x, y); nodes.add(newNode); idToNode.put(pid + id, newNode); return true; }
public HashSet getLeafOperations() { HashSet result = new HashSet(); Object[] ops = operations.values().toArray(); for (int i = 0; i < ops.length; i++) { PDMOperation op = (PDMOperation) ops[i]; if ((op.getInputElements().isEmpty())) { result.add(op); } } return result; }
/** * @param inputStream * @param session * @param sessionName @return * @throws RuntimeException */ public void loadSession(InputStream inputStream, Session session, String sessionName) { log.debug("Load session"); Document document = null; try { document = Utilities.createDOMDocumentFromXmlStream(inputStream); } catch (Exception e) { log.error("Load session error", e); throw new RuntimeException(e); } NodeList tracks = document.getElementsByTagName("Track"); hasTrackElments = tracks.getLength() > 0; HashMap additionalInformation = new HashMap(); additionalInformation.put(INPUT_FILE_KEY, sessionName); NodeList nodes = document.getElementsByTagName(SessionElement.GLOBAL.getText()); if (nodes == null || nodes.getLength() == 0) { nodes = document.getElementsByTagName(SessionElement.SESSION.getText()); } processRootNode(session, nodes.item(0), additionalInformation); // Add tracks not explicitly allocated to panels. It is legal to define sessions with the // Resources // section only (no Panel or Track elements). addLeftoverTracks(trackDictionary.values()); if (session.getGroupTracksBy() != null && session.getGroupTracksBy().length() > 0) { igv.setGroupByAttribute(session.getGroupTracksBy()); } if (session.isRemoveEmptyPanels()) { igv.getMainPanel().removeEmptyDataPanels(); } igv.resetOverlayTracks(); }
/** * Retrieves default values from xml. * * @param list the configuration list */ private static void parseDefaults(NodeList list) { for (int i = 0; i < list.getLength(); ++i) { NamedNodeMap mapping = list.item(i).getAttributes(); String attribute = mapping.getNamedItem("attribute").getNodeValue(); String value = mapping.getNamedItem("value").getNodeValue(); try { Default field = Default.fromString(attribute); DEFAULTS.put(field, value); } catch (IllegalArgumentException exc) { logger.warn("Unrecognized default attribute: " + attribute); } } }
/** * Export to PDM file. * * @param bw Writer * @throws IOException If writing fails */ public void writeToPDM(Writer bw) throws IOException { bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); bw.write("<PDM\n"); bw.write("\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"); bw.write( "\txsi:noNamespaceSchemaLocation=\"C:/Documents and Settings/ivdfeest/My Documents/Implementatie/PDM.xsd\"\n"); bw.write(">\n"); Iterator it = dataElements.values().iterator(); while (it.hasNext()) { PDMDataElement dataElement = (PDMDataElement) it.next(); dataElement.writeToPDM(bw); } Iterator it2 = resources.values().iterator(); while (it2.hasNext()) { PDMResource resource = (PDMResource) it.next(); resource.writeToPDM(bw); } Iterator it3 = operations.values().iterator(); while (it3.hasNext()) { PDMOperation operation = (PDMOperation) it.next(); operation.writeToPDM(bw); } bw.write("</PDM>\n"); }
/** * TDTEngine - constructor for a new Tag Data Translation engine * * @param confdir the string value of the path to a configuration directory consisting of two * subdirectories, <code>schemes</code> and <code>auxiliary</code>. * <p>When the class TDTEngine is constructed, the path to a local directory must be * specified, by passing it as a single string parameter to the constructor method (without * any trailing slash or file separator). e.g. <code> * <pre>TDTEngine engine = new TDTEngine("/opt/TDT");</pre></code> * <p>The specified directory must contain two subdirectories named auxiliary and schemes. The * Tag Data Translation definition files for the various coding schemes should be located * inside the subdirectory called <code>schemes</code>. Any auxiliary lookup files (such as * <code>ManagerTranslation.xml</code>) should be located inside the subdirectory called * <code>auxiliary</code>. * <p>Files within the schemes directory ending in <code>.xml</code> are read in and * unmarshalled using <a href = "http://www.castor.org">Castor</a>. */ public TDTEngine(String confdir) throws FileNotFoundException, MarshalException, ValidationException, TDTException { xmldir = confdir; long t = System.currentTimeMillis(); File[] dir = new java.io.File(confdir + File.separator + "schemes").listFiles(new XMLFilenameFilter()); // java.util.Arrays.sort(dir); // Sort it if (dir == null) throw new TDTException("Cannot find schemes in " + confdir); Unmarshaller unmar = new Unmarshaller(); for (File f : dir) { EpcTagDataTranslation tdt = (EpcTagDataTranslation) unmar.unmarshal(EpcTagDataTranslation.class, new FileReader(f)); initFromTDT(tdt); } // need to populate the hashmap gs1cpi from the ManagerTranslation.xml table in auxiliary. // Unmarshaller unmar = new Unmarshaller(); GEPC64Table cpilookup = (GEPC64Table) unmar.unmarshal( GEPC64Table.class, new FileReader( confdir + File.separator + "auxiliary" + File.separator + "ManagerTranslation.xml")); for (Enumeration e = cpilookup.enumerateEntry(); e.hasMoreElements(); ) { Entry entry = (Entry) e.nextElement(); String comp = entry.getCompanyPrefix(); String indx = Integer.toString(entry.getIndex()); gs1cpi.put(indx, comp); gs1cpi.put(comp, indx); } // System.out.println("Loaded schemas in " + // (System.currentTimeMillis() - t) // + " millisecs"); }
private void processFilterElement( Session session, Element element, HashMap additionalInformation) { TrackFilter filter = (TrackFilter) additionalInformation.get(SessionElement.FILTER); String item = getAttribute(element, SessionAttribute.ITEM.getText()); String operator = getAttribute(element, SessionAttribute.OPERATOR.getText()); String value = getAttribute(element, SessionAttribute.VALUE.getText()); String booleanOperator = getAttribute(element, SessionAttribute.BOOLEAN_OPERATOR.getText()); TrackFilterElement trackFilterElement = new TrackFilterElement( filter, item, Operator.findEnum(operator), value, BooleanOperator.findEnum(booleanOperator)); filter.add(trackFilterElement); NodeList elements = element.getChildNodes(); process(session, elements, additionalInformation); }
public static MiningResult importFile(InputStream input) throws IOException { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); Document doc; // NodeList netNodes; dbf.setValidating(false); dbf.setIgnoringComments(true); dbf.setIgnoringElementContentWhitespace(true); // dbf.setExpandEntityReferences(false); // dbf.setNamespaceAware(false); DocumentBuilder db = dbf.newDocumentBuilder(); db.setEntityResolver( new EntityResolver() { public InputSource resolveEntity(String publicId, String systemId) { if (systemId.indexOf("ARIS-Export") != -1) { return new InputSource("file:" + About.EXTLIBLOCATION() + "ARIS-Export101.dtd"); } else { return null; } } }); InputSource inpStream = new InputSource(input); inpStream.setSystemId("file:" + System.getProperty("user.dir", "")); doc = db.parse(inpStream); // check if root element is a aml tag Message.add("parsing done" + doc, Message.DEBUG); if (!(doc.getDocumentElement().getNodeName().equals("AML"))) { Message.add("aml tag not found", Message.ERROR); throw new Exception("aml tag not found"); } else { Message.add("aml root element found"); } EPCResult result = new EPCResult(null, (EPC) null); HashMap ObjDef_LinkId = new HashMap(); HashMap modelid_net = new HashMap(); HashMap ObjDef_Name = new HashMap(); HashMap function_LinkId = new HashMap(); HashMap ModelId_ModelType = new HashMap(); traverseAMLforObjectNames( ObjDef_Name, doc.getDocumentElement(), ObjDef_LinkId, ModelId_ModelType); Iterator findLinkToEpc = ObjDef_LinkId.keySet().iterator(); while (findLinkToEpc.hasNext()) { String currentObjDef = (String) findLinkToEpc.next(); String Links = (String) ObjDef_LinkId.get(currentObjDef); StringTokenizer linkSet = new StringTokenizer(Links); String realEpcLink = ""; while (linkSet.hasMoreTokens()) { String currentLink = linkSet.nextToken(); if (ModelId_ModelType.get(currentLink).equals("MT_EEPC")) { realEpcLink = currentLink; break; } } if (realEpcLink.equals(" ")) { ObjDef_LinkId.remove(currentObjDef); } else { ObjDef_LinkId.put(currentObjDef, realEpcLink); } } result = traverseAML( result, doc.getDocumentElement(), null, ObjDef_Name, ObjDef_LinkId, modelid_net, function_LinkId); Iterator hierarchicalFunctions = function_LinkId.keySet().iterator(); while (hierarchicalFunctions.hasNext()) { EPCSubstFunction f = (EPCSubstFunction) hierarchicalFunctions.next(); f.setSubstitutedEPC((EPC) modelid_net.get(function_LinkId.get(f))); // Message.add(f.getSubstitutedEPC().getName()); } return result; } catch (Throwable x) { Message.add(x.toString()); throw new IOException(x.getMessage()); } }
public static PetriNet convert(ConfigurableEPC baseEPC) { HashMap<EPCFunction, Transition> functionActivityMapping; HashMap<EPCConnector, Place> xorconnectorChoiceMapping; // HV: Initialize the mappings. functionActivityMapping = new HashMap<EPCFunction, Transition>(); xorconnectorChoiceMapping = new HashMap<EPCConnector, Place>(); // Check to use the weights if necessary // HV: Add both mappings. On completion, these will be filledd. PetriNet petrinet = EPCToPetriNetConverter.convert( baseEPC, new HashMap(), functionActivityMapping, xorconnectorChoiceMapping); HashSet visible = new HashSet(); // HV: The next block is taken care of by the functionActivityMapping // below. /* * Iterator it = petrinet.getTransitions().iterator(); while * (it.hasNext()) { Transition t = (Transition) it.next(); if (t.object * instanceof EPCFunction) { // if (t.getLogEvent() != null) { // Add * transitions with LogEvent (i.e. referring to functions) * visible.add(t); } } */ // HV: Prevent the places mapped onto from being reduced. visible.addAll(functionActivityMapping.values()); visible.addAll(xorconnectorChoiceMapping.values()); Message.add(visible.toString(), Message.DEBUG); Iterator it = petrinet.getPlaces().iterator(); while (it.hasNext()) { Place p = (Place) it.next(); if (p.inDegree() * p.outDegree() == 0) { // Add Initial and final places to visible, i.e. places that // refer to in and output events visible.add(p); } } // Reduce the PetriNet with Murata rules, while keeping the visible ones PetriNetReduction pnred = new PetriNetReduction(); pnred.setNonReducableNodes(visible); HashMap pnMap = new HashMap(); // Used to map pre-reduction nodes to // post-reduction nodes. PetriNet reduced = pnred.reduce(petrinet, pnMap); if (reduced != petrinet) { // Update both mappings from pre-reduction nodes to post-reduction // nodes. HashMap<EPCFunction, Transition> newFunctionActivityMapping = new HashMap<EPCFunction, Transition>(); for (EPCFunction function : functionActivityMapping.keySet()) { Transition transition = (Transition) functionActivityMapping.get(function); if (pnMap.keySet().contains(transition)) { newFunctionActivityMapping.put(function, (Transition) pnMap.get(transition)); } } functionActivityMapping = newFunctionActivityMapping; HashMap<EPCConnector, Place> newXorconnectorChoiceMapping = new HashMap<EPCConnector, Place>(); for (EPCConnector connector : xorconnectorChoiceMapping.keySet()) { Place place = (Place) xorconnectorChoiceMapping.get(connector); if (pnMap.keySet().contains(place)) { newXorconnectorChoiceMapping.put(connector, (Place) pnMap.get(place)); } } xorconnectorChoiceMapping = newXorconnectorChoiceMapping; } reduced.makeClusters(); // filter the \nunknown:normal ArrayList<Transition> alTrans = reduced.getVisibleTasks(); for (int i = 0; i < alTrans.size(); i++) { Transition t = alTrans.get(i); String id = t.getIdentifier(); int idx = id.indexOf("\\nunknown:normal"); if (idx > 0) { id = id.substring(0, idx); } // �˴������ֵ��ѯ�滻���е�label String mappedId = htDict.get(id); if (mappedId != null) { t.setIdentifier(mappedId); } else { t.setIdentifier(id); } } return reduced; }
private static void parseNet( Node node, EPC net, HashMap ObjDef_Name, HashMap ObjDef_LinkId, HashMap function_LinkId, String ModelName) throws Exception { HashMap mapping = new HashMap(); // read all nodes NodeList nodes = node.getChildNodes(); net.setIdentifier(ModelName); // Message.add("here I am still happy"); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (!n.getNodeName().equals("ObjOcc")) { continue; } if (n.getAttributes().getNamedItem("SymbolNum") == null) { continue; } String symbolnum = n.getAttributes().getNamedItem("SymbolNum").getNodeValue(); if (!(symbolnum.equals("ST_FUNC") || symbolnum.equals("ST_EV") || symbolnum.equals("ST_OPR_AND_1") || symbolnum.equals("ST_OPR_OR_1") || symbolnum.equals("ST_OPR_XOR_1"))) { continue; } String ObjDef = n.getAttributes().getNamedItem("ObjDef.IdRef").getNodeValue(); String ownName = (String) ObjDef_Name.get(ObjDef); // Message.add("YES " + // n.getAttributes().getNamedItem("ObjOcc.ID").getNodeValue()); String id = n.getAttributes().getNamedItem("ObjOcc.ID").getNodeValue(); // Message.add(id + " " + ownName); if (ownName == null || ownName == "") { ownName = id.substring(7, 11); } if (symbolnum.equals("ST_FUNC")) { if (ObjDef_LinkId.containsKey(ObjDef)) { EPCSubstFunction sf = (EPCSubstFunction) net.addFunction( new EPCSubstFunction(new LogEvent(ownName, "unknown:normal"), net, null)); sf.setIdentifier(ownName); mapping.put(id, sf); function_LinkId.put(sf, ObjDef_LinkId.get(ObjDef)); } else { EPCFunction f = net.addFunction(new EPCFunction(new LogEvent(ownName, "unknown:normal"), net)); f.setIdentifier(ownName); mapping.put(id, f); } } else if (symbolnum.equals("ST_EV")) { EPCEvent e = net.addEvent(new EPCEvent(ownName, net)); e.setIdentifier(ownName); mapping.put(id, e); } else if (symbolnum.equals("ST_OPR_AND_1")) { EPCConnector c = net.addConnector(new EPCConnector(EPCConnector.AND, net)); mapping.put(id, c); } else if (symbolnum.equals("ST_OPR_OR_1")) { // EPCConnector c = net.addConnector(new // EPCConnector(EPCConnector.OR, net)); EPCConnector c = net.addConnector(new EPCConnector(EPCConnector.AND, net)); mapping.put(id, c); } else if (symbolnum.equals("ST_OPR_XOR_1")) { EPCConnector c = net.addConnector(new EPCConnector(EPCConnector.XOR, net)); mapping.put(id, c); } } for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (!n.getNodeName().equals("ObjOcc")) { continue; } if (n.getAttributes().getNamedItem("SymbolNum") == null) { continue; } String symbolnum = n.getAttributes().getNamedItem("SymbolNum").getNodeValue(); if (!(symbolnum.equals("ST_FUNC") || symbolnum.equals("ST_EV") || symbolnum.equals("ST_OPR_AND_1") || symbolnum.equals("ST_OPR_OR_1") || symbolnum.equals("ST_OPR_XOR_1"))) { continue; } String source = n.getAttributes().getNamedItem("ObjOcc.ID").getNodeValue(); if (n.hasChildNodes()) { for (int j = 0; j < n.getChildNodes().getLength(); j++) { if (n.getChildNodes().item(j).getNodeName().equals("CxnOcc")) { Node CxnOcc = n.getChildNodes().item(j); String dest = CxnOcc.getAttributes().getNamedItem("ToObjOcc.IdRef").getNodeValue(); if (mapping.get(dest) == null) { continue; } if (net.addEdge((EPCObject) mapping.get(source), (EPCObject) mapping.get(dest)) == null) { throw (new Exception( "<html>Structural properties of EPCs are violated in input file.<br>" + "The following edge could not be added:<br><br>" + mapping.get(source).toString() + " ==> " + mapping.get(dest).toString() + "<br><br>Import aborted.</html>")); } } } } } }
public static EPCResult traverseAML( EPCResult partialResult, Node currentNode, Object parent, HashMap ObjDef_Name, HashMap ObjDef_LinkId, HashMap modelid_net, HashMap function_LinkId) throws Exception { if (currentNode.hasChildNodes()) { for (int i = 0; i < currentNode.getChildNodes().getLength(); i++) { Node currentChild = currentNode.getChildNodes().item(i); if (currentChild.getNodeName().equals("Group")) { String id = currentChild.getAttributes().getNamedItem("Group.ID").getNodeValue(); String GroupName = ""; if (currentChild.hasChildNodes()) { NodeList currentChildren = currentChild.getChildNodes(); for (int j = 0; j < currentChildren.getLength(); j++) { Node Child = currentChildren.item(j); if (!(Child.getNodeName().equals("AttrDef"))) { continue; } if (Child.getAttributes() .getNamedItem("AttrDef.Type") .getNodeValue() .equals("AT_NAME")) { if (Child.hasChildNodes()) { for (int l = 0; l < Child.getChildNodes().getLength(); l++) { if (!(Child.getChildNodes().item(l).getNodeName().equals("AttrValue"))) { continue; } else { GroupName = getTextContent(Child.getChildNodes().item(l)); } } break; } } } if (GroupName.equals("")) { GroupName = id; } } ModelHierarchyDirectory dir = new ModelHierarchyDirectory(id, GroupName); partialResult.addInHierarchy(dir, parent, GroupName); partialResult = traverseAML( partialResult, currentChild, dir, ObjDef_Name, ObjDef_LinkId, modelid_net, function_LinkId); } if (currentChild.getNodeName().equals("Model") && currentChild .getAttributes() .getNamedItem("Model.Type") .getNodeValue() .equals("MT_EEPC")) { String ModelName = "gaga"; if (currentChild.hasChildNodes()) { NodeList currentChildren = currentChild.getChildNodes(); for (int j = 0; j < currentChildren.getLength(); j++) { Node Child = currentChildren.item(j); if (!(Child.getNodeName().equals("AttrDef"))) { continue; } if (Child.getAttributes() .getNamedItem("AttrDef.Type") .getNodeValue() .equals("AT_NAME")) { if (Child.hasChildNodes()) { for (int l = 0; l < Child.getChildNodes().getLength(); l++) { if (!(Child.getChildNodes().item(l).getNodeName().equals("AttrValue"))) { continue; } else { ModelName = getTextContent(Child.getChildNodes().item(l)); } } } break; } } } try { ModelName = ModelName.replaceAll("\n", " "); EPC net = read(currentChild, ObjDef_Name, ObjDef_LinkId, function_LinkId, ModelName); partialResult.addInHierarchy(net, parent, ModelName); modelid_net.put( currentChild.getAttributes().getNamedItem("Model.ID").getNodeValue(), net); } catch (Throwable x) { Message.add(x.getClass().getName()); // throw new IOException(x.getMessage()); } } } } return partialResult; }
/** * Process a track element. This should return a single track, but could return multiple tracks * since the uniqueness of the track id is not enforced. * * @param session * @param element * @param additionalInformation * @return */ private List<Track> processTrack( Session session, Element element, HashMap additionalInformation) { String id = getAttribute(element, SessionAttribute.ID.getText()); // TODo -- put in utility method, extacts attributes from element **Definitely need to do this HashMap<String, String> tAttributes = new HashMap(); HashMap<String, String> drAttributes = null; NamedNodeMap tNodeMap = element.getAttributes(); for (int i = 0; i < tNodeMap.getLength(); i++) { Node node = tNodeMap.item(i); String value = node.getNodeValue(); if (value != null && value.length() > 0) { tAttributes.put(node.getNodeName(), value); } } if (element.hasChildNodes()) { drAttributes = new HashMap(); Node childNode = element.getFirstChild(); Node sibNode = childNode.getNextSibling(); String sibName = sibNode.getNodeName(); if (sibName.equals(SessionElement.DATA_RANGE.getText())) { NamedNodeMap drNodeMap = sibNode.getAttributes(); for (int i = 0; i < drNodeMap.getLength(); i++) { Node node = drNodeMap.item(i); String value = node.getNodeValue(); if (value != null && value.length() > 0) { drAttributes.put(node.getNodeName(), value); } } } } // Get matching tracks. List<Track> matchedTracks = trackDictionary.get(id); if (matchedTracks == null) { log.info("Warning. No tracks were found with id: " + id + " in session file"); } else { for (final Track track : matchedTracks) { // Special case for sequence & gene tracks, they need to be removed before being placed. if (version >= 4 && track == geneTrack || track == seqTrack) { igv.removeTracks(Arrays.asList(track)); } track.restorePersistentState(tAttributes); if (drAttributes != null) { DataRange dr = track.getDataRange(); dr.restorePersistentState(drAttributes); track.setDataRange(dr); } } trackDictionary.remove(id); } NodeList elements = element.getChildNodes(); process(session, elements, additionalInformation); return matchedTracks; }
Namespace getNamespaceByUri(String uri) { if (uriToPrefix.get(uri) == null) return null; return Namespace.create(uri, (String) uriToPrefix.get(uri)); }
Namespace getNamespace(String prefix) { if (map.get(prefix) == null) return null; return Namespace.create(prefix, (String) map.get(prefix)); }