package com.jds.jn.parser.formattree; import java.util.List; import com.jds.jn.Jn; import com.jds.jn.parser.parttypes.PartType; /** * @author Ulysses R. Ribeiro */ public class ForPart extends Part { private PartContainer _modelBlock; private int _forId; private int _fixedSize; public ForPart(int id, int fixedSize) { super(PartType.forBlock); _forId = id; _fixedSize = fixedSize; _modelBlock = new PartContainer(PartType.block); } public PartContainer getModelBlock() { return _modelBlock; } public void addPart(Part part) { getModelBlock().addPart(part); part.setContainingFormat(this.getContainingFormat()); part.setParentContainer(this.getParentContainer()); // this can NOT be root } public void addParts(List<Part> parts) { this.getModelBlock().addParts(parts); } public Part getPartById(int id) { return _modelBlock.getPacketPartById(id); } @Override public String treeString() { Part pp; if ((pp = this.getParentContainer().getPacketPartByIdInScope(this.getForId(), this)) != null) { return "For.. : '" + pp.getName() + "'"; } Jn.getForm().warn("ForSize Part id " + this.getForId() + " not found"); return "For.."; } public int getForId() { return _forId; } public int getFixedSize() { return _fixedSize; } public boolean addPartAfter(Part part, Part afterPart) { return _modelBlock.addPartAfter(part, afterPart); } public boolean removePart(Part part) { return _modelBlock.removePart(part); } /** * for can not have an id */ public int getId() { return -1; } @Override public void setParentContainer(PartContainer pc) { super.setParentContainer(pc); _modelBlock.setParentContainer(pc); } @Override public void setContainingFormat(Format format) { super.setContainingFormat(format); _modelBlock.setContainingFormat(format); } }