Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.contentdata.custom; import org.apache.commons.lang.builder.ToStringBuilder; import com.enonic.cms.core.content.contentdata.MissingRequiredContentDataException; import com.enonic.cms.core.content.contenttype.dataentryconfig.DataEntryConfig; public class GroupDataEntry extends AbstractDataEntrySet implements DataEntrySet { private int groupIndex; public GroupDataEntry(GroupDataEntry other, int newGroupIndex) { super(other); this.groupIndex = newGroupIndex; } public GroupDataEntry(String name, String xpath) { super(resolveName(name, xpath), DataEntryType.GROUP, xpath); } public GroupDataEntry(String name, String xpath, int groupIndex) { super(resolveName(name, xpath), DataEntryType.GROUP, xpath); this.groupIndex = groupIndex; } public void validate() { // validate required data doValidateRequiredDataEntries(); // Validate each data entry for (DataEntry dataEntry : entries) { dataEntry.validate(); } } private void doValidateRequiredDataEntries() { for (DataEntryConfig dataEntryConfig : getConfig().getInputConfigs()) { DataEntry dataEntry = getEntry(dataEntryConfig.getName()); if (dataEntryConfig.isRequired()) { validateRequiredDataEntry(dataEntryConfig, dataEntry); } } } @Override protected void validateRequiredDataEntry(final DataEntryConfig dataEntryConfig, final DataEntry dataEntry) { if (dataEntry == null) { throw MissingRequiredContentDataException.missingDataEntryInGroup(dataEntryConfig, this); } else if (!dataEntry.hasValue()) { throw MissingRequiredContentDataException.missingDataEntryValueInGroup(dataEntryConfig, this); } else if (dataEntry.breaksRequiredContract()) { throw MissingRequiredContentDataException.missingDataEntryValueInGroup(dataEntryConfig, this); } } public boolean hasAllDataEntries() { for (DataEntryConfig dataEntryConfig : getConfig().getInputConfigs()) { if (!entryMap.containsKey(dataEntryConfig.getName())) { return false; } } return true; } private static String resolveName(String name, String xpath) { if (name == null || name.trim().length() == 0) { return xpath; } return name; } public int getGroupIndex() { return groupIndex; } public void setGroupIndex(int groupIndex) { this.groupIndex = groupIndex; } @Override public String toString() { ToStringBuilder b = new ToStringBuilder(this); b.append("name", getName()); b.append("groupIndex", groupIndex); return b.toString(); } }