package com.mozz.htmlnative.dom; import android.text.TextUtils; import java.util.List; /** * @author Yang Tao, 17/5/12. */ public class AttachedElement implements DomElement { private String mType; private String[] mClazz; private String mId; private DomElement mParent; @Override public String getType() { return mType; } @Override public String[] getClazz() { return mClazz; } @Override public String getId() { return mId; } @Override public DomElement getParent() { return mParent; } @Override public List children() { throw new UnsupportedOperationException(); } @Override public boolean hasClazz() { return mClazz != null && mClazz.length > 0; } @Override public boolean hasId() { return !TextUtils.isEmpty(mId); } @Override public CharSequence getInner() { return null; } @Override public void setType(String type) { mType = type; } @Override public void setClazz(String[] clazz) { mClazz = clazz; } @Override public void setId(String id) { mId = id; } @Override public void setParent(DomElement parent) { mParent = parent; } /** * Only clone when domElement is not {@link AttachedElement} * * @param domElement {@link DomElement} * @return cloned one, if domElement is not an AttachedElement; otherwise return just * domElement itself */ public static AttachedElement cloneIfNecessary(DomElement domElement) { if (domElement instanceof AttachedElement) { return (AttachedElement) domElement; } else { return cloneFrom(domElement); } } public static AttachedElement cloneFrom(DomElement domElement) { AttachedElement attachedElement = new AttachedElement(); attachedElement.setId(domElement.getId()); attachedElement.setClazz(domElement.getClazz()); attachedElement.setType(domElement.getType()); return attachedElement; } }