001 package org.apache.torque.engine.database.model;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import org.xml.sax.Attributes;
023
024 /**
025 * A Class for information regarding possible objects representing a table
026 *
027 * @author <a href="mailto:jmcnally@collab.net">John McNally</a>
028 * @version $Id: Inheritance.java,v 1.1 2007-10-21 07:57:27 abyrne Exp $
029 */
030 public class Inheritance
031 {
032 private String key;
033 private String className;
034 private String ancestor;
035 private Column parent;
036
037 /**
038 * Imports foreign key from an XML specification
039 *
040 * @param attrib the xml attributes
041 */
042 public void loadFromXML (Attributes attrib)
043 {
044 setKey(attrib.getValue("key"));
045 setClassName(attrib.getValue("class"));
046 setAncestor(attrib.getValue("extends"));
047 }
048
049 /**
050 * Get the value of key.
051 * @return value of key.
052 */
053 public String getKey()
054 {
055 return key;
056 }
057
058 /**
059 * Set the value of key.
060 * @param v Value to assign to key.
061 */
062 public void setKey(String v)
063 {
064 this.key = v;
065 }
066
067
068 /**
069 * Get the value of parent.
070 * @return value of parent.
071 */
072 public Column getColumn()
073 {
074 return parent;
075 }
076
077 /**
078 * Set the value of parent.
079 * @param v Value to assign to parent.
080 */
081 public void setColumn(Column v)
082 {
083 this.parent = v;
084 }
085
086 /**
087 * Get the value of className.
088 * @return value of className.
089 */
090 public String getClassName()
091 {
092 return className;
093 }
094
095 /**
096 * Set the value of className.
097 * @param v Value to assign to className.
098 */
099 public void setClassName(String v)
100 {
101 this.className = v;
102 }
103
104 /**
105 * Get the value of ancestor.
106 * @return value of ancestor.
107 */
108 public String getAncestor()
109 {
110 return ancestor;
111 }
112
113 /**
114 * Set the value of ancestor.
115 * @param v Value to assign to ancestor.
116 */
117 public void setAncestor(String v)
118 {
119 this.ancestor = v;
120 }
121
122 /**
123 * String representation of the foreign key. This is an xml representation.
124 *
125 * @return string representation in xml
126 */
127 public String toString()
128 {
129 StringBuffer result = new StringBuffer();
130 result.append(" <inheritance key=\"")
131 .append(key)
132 .append("\" class=\"")
133 .append(className)
134 .append('\"');
135
136
137 if (ancestor != null)
138 {
139 result.append(" extends=\"")
140 .append(ancestor)
141 .append('\"');
142 }
143
144 result.append("/>");
145
146 return result.toString();
147 }
148 }