/** * Writes the attributes to a StorableInput. FigureAttributes store the following types directly: * Color, Boolean, String, Int. Other attribute types have to implement the Storable interface or * they have to be wrapped by an object that implements Storable. * * @see Storable * @see #write */ public void write(StorableOutput dw) { dw.writeString("attributes"); dw.writeInt(fMap.size()); // number of attributes Iterator<FigureAttributeConstant> iter = fMap.keySet().iterator(); while (iter.hasNext()) { FigureAttributeConstant fac = iter.next(); String attributeName = fac.getName(); Object attributeValue = fMap.get(fac); dw.writeString(attributeName); if (attributeValue instanceof String) { dw.writeString("String"); dw.writeString((String) attributeValue); } else if (attributeValue instanceof Color) { writeColor(dw, "Color", (Color) attributeValue); } else if (attributeValue instanceof Boolean) { dw.writeString("Boolean"); if (((Boolean) attributeValue).booleanValue()) { dw.writeString("TRUE"); } else { dw.writeString("FALSE"); } } else if (attributeValue instanceof Integer) { dw.writeString("Int"); dw.writeInt(((Integer) attributeValue).intValue()); } else if (attributeValue instanceof Storable) { dw.writeString("Storable"); dw.writeStorable((Storable) attributeValue); } else if (attributeValue instanceof javax.swing.JPopupMenu) { dw.writeString(Figure.POPUP_MENU); } else { System.err.println("Unknown attribute: " + attributeValue); dw.writeString("UNKNOWN"); } } }
public void write(StorableOutput dw) { super.write(dw); dw.writeStorable(getStartConnector()); dw.writeStorable(getEndConnector()); }
@Override public void write(org.jhotdraw.util.StorableOutput dw) { super.write(dw); dw.writeStorable(Wrapper.wrap(converter)); }