package org.buddycloud.channelserver.channel.node.configuration.field; public class Factory { public Field create(String type, String value) { if ((null == type) || (null == value)) { throw new ConfigurationFieldException(); } if (type.equals(Creator.FIELD_NAME)) { Creator field = new Creator(); setValue(field, value); return field; } else if (type.equals(NodeTitle.FIELD_NAME)) { NodeTitle field = new NodeTitle(); setValue(field, value); return field; } else if (type.equals(NodeDescription.FIELD_NAME)) { NodeDescription field = new NodeDescription(); setValue(field, value); return field; } else if (type.equals(AccessModel.FIELD_NAME)) { AccessModel field = new AccessModel(); setValue(field, value); return field; } else if (type.equals(Affiliation.FIELD_NAME)) { Affiliation field = new Affiliation(); setValue(field, value); return field; } else if (type.equals(CreationDate.FIELD_NAME)) { CreationDate field = new CreationDate(); setValue(field, value); return field; } else if (type.equals(LastUpdatedDate.FIELD_NAME)) { LastUpdatedDate field = new LastUpdatedDate(); setValue(field, value); return field; } else if (type.equals(ChannelType.FIELD_NAME)) { ChannelType field = new ChannelType(); setValue(field, value); return field; } else if (type.equals(Advertise.FIELD_NAME)) { Advertise field = new Advertise(); setValue(field, value); return field; } else if (type.equals(Ephemeral.FIELD_NAME)) { Ephemeral field = new Ephemeral(); setValue(field, value); return field; } else { Generic field = new Generic(); field.setName(type); field.setValue(value); return field; } } private void setValue(Field field, String value) { if (0 == value.length()) { value = field.DEFAULT_VALUE; } field.setValue(value); } }