public AttributeSource(AttributeSource input){
  Objects.requireNonNull(input,"input AttributeSource must not be null");
  this.attributes=input.attributes;
  this.attributeImpls=input.attributeImpls;
  this.currentState=input.currentState;
  this.factory=input.factory;
}

public AttributeSource ( AttributeSource input ) { Objects . requireNonNull ( input , "input AttributeSource must not be null" ) ; this . attributes = input . attributes ; this . attributeImpls = input . attributeImpls ; this . currentState = input . currentState ; this . factory = input . factory ; }
an attributesource that uses the same attributes as the supplied one .
