public StateInfo(StateInfo info){
  this.state=info.state;
  this.font=info.font;
  if (info.data != null) {
    if (data == null) {
      data=new HashMap();
    }
    data.putAll(info.data);
  }
  if (info.colors != null) {
    this.colors=new Color[info.colors.length];
    System.arraycopy(info.colors,0,colors,0,info.colors.length);
  }
}

public StateInfo ( StateInfo info ) { this . state = info . state ; this . font = info . font ; if ( info . data != null ) { if ( data == null ) { data = new HashMap ( ) ; } data . putAll ( info . data ) ; } if ( info . colors != null ) { this . colors = new Color [ info . colors . length ] ; System . arraycopy ( info . colors , 0 , colors , 0 , info . colors . length ) ; } }
creates a new stateinfo that is a copy of the passed in stateinfo .
