blob: b4739410819f38de55809024a53f064bc72a4a88 [file] [log] [blame]
package org.eclipse.epf.library.edit.meta.internal;
import java.util.List;
import org.eclipse.epf.library.edit.meta.IMetaDef;
import org.eclipse.epf.library.edit.meta.TypeDefException;
import org.eclipse.epf.uma.util.ExtendedReference;
import org.eclipse.epf.uma.util.ExtendedSection;
import org.eclipse.epf.uma.util.ExtendedTable;
import org.eclipse.epf.uma.util.MetaElement;
import org.w3c.dom.Element;
public class ExtendedTableImpl extends MetaElementImpl implements ExtendedTable {
private ExtendedReference columnReference;
private ExtendedReference rowReference;
private ExtendedReference cellReference;
private String columnSplit;
public ExtendedTableImpl(MetaElement parent) {
super(parent);
}
public ExtendedReference getColumnReference() {
return columnReference;
}
public ExtendedReference getRowReference() {
return rowReference;
}
public ExtendedReference getCellReference() {
return cellReference;
}
public String getColumnSplit() {
return columnSplit;
}
public void parseElement(Element element) throws TypeDefException {
super.parseElement(element);
if (! (getParent() instanceof ExtendedSection)) {
return;
}
List<ExtendedReference> references = ((ExtendedSection) getParent()).getReferences();
if (references.isEmpty()) {
return;
}
String colStr = element.getAttribute(IMetaDef.columnReference);
String rowStr = element.getAttribute(IMetaDef.rowReference);
String celStr = element.getAttribute(IMetaDef.cellReference);
columnSplit = element.getAttribute(IMetaDef.columnSplit);
if (colStr == null || rowStr == null || celStr == null) {
return;
}
colStr = colStr.trim();
rowStr = rowStr.trim();
celStr = celStr.trim();
for (ExtendedReference ref : references) {
if (colStr.equals(ref.getId())) {
columnReference = ref;
}
if (rowStr.equals(ref.getId())) {
rowReference = ref;
}
if (celStr.equals(ref.getId())) {
cellReference = ref;
}
if (columnReference != null && rowReference != null && cellReference != null) {
break;
}
}
}
}