package org.ebayopensource.turmeric.eclipse.typelibrary.utils.importtypes.xsdpiece; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** * represent a whole XSD file. * @author mzang * */ public class XSDContentList { private List<IXSDPiece> content = new LinkedList<IXSDPiece>(); /** * create instance */ public XSDContentList() { super(); } /** * add a String piece to XSD * @param str */ public void add(String str) { content.add(new StringPiece(str)); } /** * add a piece to XSD * @param str */ public void add(IXSDPiece piece) { content.add(piece); } /** * generate XSD content */ public String toString() { StringBuilder xsd = new StringBuilder(); for (IXSDPiece piece : content) { xsd.append(piece.getContent()); } return xsd.toString(); } /** * get piece count * @return */ public int size() { return content.size(); } /** * insert pieces to a location * @param location * @param pieces */ public void insert(int location, Object... pieces) { List<IXSDPiece> listPieces = new ArrayList<IXSDPiece>(); for (Object objPiece : pieces) { IXSDPiece piece = null; if (objPiece instanceof String) { piece = new StringPiece((String) objPiece); } else { piece = (IXSDPiece) objPiece; } listPieces.add(piece); } insert(location, listPieces); } /** * insert pieces to a location * @param location * @param listPieces */ public void insert(int location, List<IXSDPiece> listPieces) { content.addAll(location, listPieces); } /** * get all XSD pieces * @return */ public List<IXSDPiece> getContentList() { return content; } }