/* Generated By:JJTree: Do not edit this line. ASTFObject.java */ package com.framsticks.framclipse.internal.parser; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.Region; public class ASTFObject extends ElementWithOffset { private String className = "N/A"; public ASTFObject(int id) { super(id); } public ASTFObject(FramclipseNonScriptParser p, int id) { super(p, id); } @Override public String toString() { String id = ""; for (Node child : children) { if(child instanceof ASTProperty) { ASTProperty prop = (ASTProperty)child ; String name = prop.getName(); if ("id".equalsIgnoreCase(name)) id = prop.getValue()+" : "; } } return id+className; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public IRegion getIdRegion() { if(children != null) { for (Node child : children) { if(child instanceof ASTProperty) { ASTProperty prop = (ASTProperty)child ; String name = prop.getName(); if(name != null && name.toLowerCase().equals("id") ) { return new Region(prop.getBeginOffset(), prop.getEndOffset() - prop.getBeginOffset() + 1); } } } } return null; } @Override public boolean isEquivalent(ElementWithOffset element, IDocument document) { if(!(element instanceof ASTFObject)) return false; ASTFObject obj = ((ASTFObject)element); if(!(getClassName().equals(obj.getClassName()))) return false; IRegion reg1 = getIdRegion(); IRegion reg2 = obj.getIdRegion(); if(reg1 != null && reg2 == null || reg1 == null && reg2 != null) return false; if(reg1 != null && reg2 != null) { try { if(!document.get(reg1.getOffset(), reg1.getLength()).equals(document.get(reg2.getOffset(), reg2.getLength()))) return false; } catch(Exception ex) { } } return super.isEquivalent(element, document); } }