code: Attribute modify(
              final AttributeDefinition definition,
              final String completeName,
              final String value,
              final AttributeValueQuotes valueQuotes) {
  
          return new Attribute(
                  (definition == null? this.definition : definition),
                  (completeName == null? this.completeName : completeName),
                  this.operator,
                  value, // This is not keepable
                  (valueQuotes == null? this.valueQuotes : valueQuotes),
                  this.templateName,
                  this.line,
                  this.col);
      }
docs: /*
  This method allows the easy creation of instances derivate from this one but keeping some specific fields