/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.contentdata.custom; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.HashCodeBuilder; import com.enonic.cms.core.content.contenttype.dataentryconfig.DataEntryConfig; public class MultipleChoiceDataEntry extends AbstractInputDataEntry { private String text; private List<MultipleChoiceAlternative> alternatives; public MultipleChoiceDataEntry( DataEntryConfig config, String text, List<MultipleChoiceAlternative> alternatives ) { super( config, DataEntryType.MULTIPLE_CHOICE ); this.text = text; this.alternatives = alternatives; } public void validate() { } public boolean breaksRequiredContract() { if ( alternatives == null || text == null ) { return true; } if ( alternatives.size() < 2 ) { return true; } return StringUtils.isBlank( text ); } public boolean hasValue() { return text != null || alternatives != null; } public String getText() { return text; } public List<MultipleChoiceAlternative> getAlternatives() { return alternatives; } @Override public String toString() { return "MultipleChoiceDataEntry: '" + text + "', with " + ( alternatives == null ? "NULL" : alternatives.size() ) + " alternatives."; } @Override public boolean equals( Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } if ( !super.equals( o ) ) { return false; } MultipleChoiceDataEntry that = (MultipleChoiceDataEntry) o; if ( alternatives != null ? !alternatives.equals( that.alternatives ) : that.alternatives != null ) { return false; } if ( text != null ? !text.equals( that.text ) : that.text != null ) { return false; } return true; } @Override public int hashCode() { return new HashCodeBuilder( 402, 679 ).appendSuper( super.hashCode() ).append( text ).append( alternatives ).toHashCode(); } }