001: /*******************************************************************************
002: * Copyright (c) 2007 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.pde.internal.core.text.cheatsheet.simple;
011:
012: import java.io.PrintWriter;
013: import java.util.List;
014:
015: import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCS;
016: import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSModel;
017: import org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject;
018: import org.eclipse.pde.internal.core.plugin.IWritableDelimiter;
019: import org.eclipse.pde.internal.core.text.DocumentObject;
020: import org.eclipse.pde.internal.core.text.IDocumentTextNode;
021: import org.eclipse.pde.internal.core.text.plugin.DocumentGenericNode;
022: import org.w3c.dom.Element;
023:
024: /**
025: * SimpleCSObject
026: *
027: */
028: public abstract class SimpleCSObject extends DocumentObject implements
029: ISimpleCSObject, IWritableDelimiter {
030:
031: private static final long serialVersionUID = 1L;
032:
033: /**
034: * @param model
035: * @param tagName
036: */
037: public SimpleCSObject(ISimpleCSModel model, String tagName) {
038: super (model, tagName);
039: }
040:
041: /* (non-Javadoc)
042: * @see org.eclipse.pde.internal.core.text.cheatsheet.simple.SimpleCSObject#getChildren()
043: */
044: public List getChildren() {
045: return getChildNodesList(DocumentGenericNode.class, false);
046: }
047:
048: /* (non-Javadoc)
049: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject#getModel()
050: */
051: public ISimpleCSModel getModel() {
052: return (ISimpleCSModel) getSharedModel();
053: }
054:
055: /* (non-Javadoc)
056: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject#getName()
057: */
058: public abstract String getName();
059:
060: /* (non-Javadoc)
061: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject#getParent()
062: */
063: public ISimpleCSObject getParent() {
064: return (ISimpleCSObject) getParentNode();
065: }
066:
067: /* (non-Javadoc)
068: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject#getSimpleCS()
069: */
070: public ISimpleCS getSimpleCS() {
071: return getModel().getSimpleCS();
072: }
073:
074: /* (non-Javadoc)
075: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject#getType()
076: */
077: public abstract int getType();
078:
079: /* (non-Javadoc)
080: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject#parse(org.w3c.dom.Element)
081: */
082: public void parse(Element element) {
083: // TODO: MP: TEO: LOW: Remove parse from interface - once old simpleCS model is deleted
084: // NO-OP
085: }
086:
087: /* (non-Javadoc)
088: * @see org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSObject#setModel(org.eclipse.pde.internal.core.icheatsheet.simple.ISimpleCSModel)
089: */
090: public void setModel(ISimpleCSModel model) {
091: setSharedModel(model);
092: }
093:
094: /* (non-Javadoc)
095: * @see org.eclipse.pde.internal.core.plugin.IWritableDelimeter#writeDelimeter(java.io.PrintWriter)
096: */
097: public void writeDelimeter(PrintWriter writer) {
098: // TODO: MP: TEO: LOW: Probably \n for all
099: // NO-OP
100: // Child classes to override
101: }
102:
103: /* (non-Javadoc)
104: * @see org.eclipse.pde.internal.core.text.plugin.PluginDocumentNode#createDocumentTextNode()
105: */
106: protected IDocumentTextNode createDocumentTextNode() {
107: return new SimpleCSDocumentTextNode();
108: }
109:
110: }
|