/** * NamedElement.java * * @author Charles Groves */ package edu.sc.seis.sod.validator.model; import edu.sc.seis.sod.validator.tour.Tourist; public class NamedElement extends AbstractGenitorForm{ public NamedElement(int min, int max, String name){ this(min, max, name, null); } public NamedElement(int min, int max, String name, Form parent){ super(min, max, parent); this.name = name; } public String getXPath() { try{ if(getParent() != null){ return getParent().getXPath() + "/" + getName(); }else{ return getName(); } }catch(NullPointerException e){ e.printStackTrace(); throw e; } } public Attribute[] getAttributes(){ if(getChild() instanceof MultigenitorForm){ return ((MultigenitorForm)getChild()).getAttributes(); }else if(getChild() instanceof Attribute){ return new Attribute[]{(Attribute)getChild()}; } return null; } public NamedElement[] getElementalChildren(){ if(getChild() instanceof MultigenitorForm){ return ((MultigenitorForm)getChild()).getElementalChildren(); }else if(getChild() instanceof NamedElement){ return new NamedElement[]{(NamedElement)getChild()}; } return null; } public String getName(){ return name; } public FormProvider copyWithNewParent(Form newParent) { NamedElement copy = new NamedElement(getMin(), getMax(), getName(), newParent); super.copyGutsOver(copy); return copy; } public String toString(){ return getName(); } public void accept(Tourist v){ v.visit(this); super.accept(v); v.leave(this); } private String name; }