/** * */ package org.jboss.tools.smooks.configuration.editors.javabean12; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import org.jboss.tools.smooks.configuration.editors.IXMLStructuredObject; /** * @author Dart * */ public class JavaBeanList extends JavaBeanModel implements IXMLStructuredObject{ private List<IXMLStructuredObject> children = null; public List<IXMLStructuredObject> getChildren() { if(children == null){ children = new ArrayList<IXMLStructuredObject>(); } return children; } public JavaBeanList(){ super(null); } @Override public boolean isPrimitive() { return false; } public String getJavaBeanName(JavaBeanModel javaBean){ List<?> children = getChildren(); int sameNameBean = 0; for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) { JavaBeanModel child = (JavaBeanModel) iterator.next(); if(child.getBeanClass().getName().equals(javaBean.getBeanClass().getName())){ sameNameBean++; } } if(sameNameBean > 0){ String name = javaBean.getName() + String.valueOf(sameNameBean); while(hasSameNameBean(name,javaBean.getBeanClass())){ sameNameBean++; name = javaBean.getName() + String.valueOf(sameNameBean); } return name; } return javaBean.getName(); } private boolean hasSameNameBean(String name , Class<?> clazz){ for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) { JavaBeanModel child = (JavaBeanModel) iterator.next(); if(child.getBeanClass().getName().equals(clazz.getName())){ if(name.equals(child.getName())){ return true; } } } return false; } public void addJavaBean(JavaBeanModel javaBean){ if(javaBean == null) return; String name = javaBean.getName(); String n1 = getJavaBeanName(javaBean); if(!name.equals(n1)){ javaBean.setName(n1); } javaBean.setParent(this); this.getChildren().add(javaBean); } public void removeJavaBean(JavaBeanModel javaBean){ this.getChildren().remove(javaBean); javaBean.setParent(null); } @Override public List<?> getProperties() { return Collections.EMPTY_LIST; } public Object getID() { return this; } public String getNodeName() { return null; } public JavaBeanModel getParent() { return null; } public boolean isAttribute() { // TODO Auto-generated method stub return false; } @Override public boolean isRootNode() { return true; } }