package com.taobao.tddl.common.model; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.builder.ToStringBuilder; import com.taobao.tddl.common.utils.TddlToStringStyle; /** * 类似tddl三层结构的group概念,用于以后扩展第三方存储,目前扩展属性暂时使用properties代替 * * @author whisper * @author <a href="jianghang.loujh@taobao.com">jianghang</a> */ public class Group { private String name; private String appName; public enum GroupType { BDB_JE, MYSQL_JDBC, MYSQL_ASYNC_JDBC, JAVA_SKIPLIST, HBASE_CLIENT, TDHS_CLIENT, ORACLE_JDBC, OCEANBASE_JDBC; public boolean isMysql() { return this == MYSQL_JDBC; } public boolean isOracle() { return this == ORACLE_JDBC; } } /** * 用于描述这组机器的类型 */ private GroupType type = GroupType.MYSQL_JDBC; private List<Atom> atoms = new ArrayList<Atom>(); private Map<String, String> properties = new HashMap(); public String getName() { return name; } public void setName(String name) { this.name = name; } public GroupType getType() { return type; } public void setType(GroupType type) { this.type = type; } public List<Atom> getAtoms() { return atoms; } public Atom getAtom(String atomName) { for (Atom atom : atoms) { if (atom.getName().equals(atomName)) { return atom; } } return null; // throw new TddlRuntimeException("not found atomName : " + atomName); } public void setAtoms(List<Atom> atoms) { this.atoms = atoms; } public Map<String, String> getProperties() { return properties; } public void setProperties(Map<String, String> properties) { this.properties = properties; } public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } @Override public String toString() { return ToStringBuilder.reflectionToString(this, TddlToStringStyle.DEFAULT_STYLE); } }