code: public void accept(XVisitor visitor, XAttributable parent) {
  		/*
  		 * First call.
  		 */
  		visitor.visitAttributePre(this, parent);
  		if (this instanceof XAttributeCollection) {
  			/*
  			 * Visit the (meta) attributes using the order a specified by the collection.
  			 */
  			for (XAttribute attribute: ((XAttributeCollection) this).getCollection()) {
  				attribute.accept(visitor, this);
  			}
  		} else {
  			/*
  			 * Visit the (meta) attributes.
  			 */
  			if (attributes != null) {
  				for (XAttribute attribute: getAttributes().values()) {
  					attribute.accept(visitor, this);
  				}
  			}
  		}
  		/*
  		 * Last call.
  		 */
  		visitor.visitAttributePost(this, parent);
  	}
docs: /*
  Runs the given visitor for the given parent on this attribute.
  
  (non-Javadoc)
  @see org.deckfour.xes.model.XAttribute#accept(org.deckfour.xes.model.XVisitor, org.deckfour.xes.model.XAttributable)