/** * Setter for property {@code arguments}. * * @param value the new arguments for the instance. * * @throws DuplicateArgumentException if {@code value} contains * duplicate arguments. */ public void setArguments( final Argument[] value ) { this.names.clear(); this.hashCode = 0; this.arguments = null; if ( value != null ) { for ( int i = 0; i < value.length; i++ ) { this.hashCode += value[i].hashCode(); if ( this.names.put( value[i].getName(), value[i] ) != null ) { this.names.clear(); this.hashCode = 0; throw new DuplicateArgumentException( value[i].getName() ); } } this.arguments = value; } }