/* * VObjectImpl.java * * Created on July 14, 2003, 10:32 AM */ package org.jboss.tools.common.verification.vrules.layer; import org.jboss.tools.common.verification.vrules.*; import org.jboss.tools.common.model.*; /** * * @author valera */ public class VObjectImpl implements VObject { private XModelObject modelObject; private VModel model; /** Creates a new instance of VObjectImpl */ public VObjectImpl(XModelObject modelObject, VModel model) { this.modelObject = modelObject; this.model = model; } public Object getAttribute(String name) { return modelObject.getAttributeValue(name); } public VObject getChild(String path) { XModelObject child = modelObject.getChildByPath(path); return child == null ? null : new VObjectImpl(child, model); } static VObject[] EMPTY_CHILDREN = new VObject[0]; public VObject[] getChildren() { if("true".equals(modelObject.get("overlapped"))) return EMPTY_CHILDREN; //$NON-NLS-1$ //$NON-NLS-2$ //Takes too much time, do not verify in jars if(modelObject.getModelEntity().getName().equals("FileSystemJar")) { //$NON-NLS-1$ return EMPTY_CHILDREN; } XModelObject[] c = modelObject.getChildren(); VObject[] children = new VObject[c.length]; for (int i = 0; i < c.length; i++) { children[i] = new VObjectImpl(c[i], model); } return children; } public VEntity getEntity() { return model.getEntity(modelObject.getModelEntity().getName()); } public VModel getModel() { return model; } public VObject getParent() { XModelObject p = modelObject.getParent(); return p == null ? null : new VObjectImpl(p, model); } public String getPath() { return modelObject.getPath(); } public XModelObject getModelObject() { return modelObject; } public long getTimeStamp() { return modelObject.getTimeStamp(); } public boolean equals(Object o) { if (this == o) return true; if (o instanceof VObjectImpl) { return ((VObjectImpl)o).modelObject.equals(this.modelObject); } return false; } public int hashCode() { return modelObject.hashCode(); } public String toString() { return org.jboss.tools.common.model.util.FindObjectHelper.makeRef(getPath(), org.jboss.tools.common.meta.action.impl.handlers.DefaultCreateHandler.title(modelObject, true)); } }