001 /**
002 * Copyright (C) 2007-2011, Jens Lehmann
003 *
004 * This file is part of DL-Learner.
005 *
006 * DL-Learner is free software; you can redistribute it and/or modify
007 * it under the terms of the GNU General Public License as published by
008 * the Free Software Foundation; either version 3 of the License, or
009 * (at your option) any later version.
010 *
011 * DL-Learner is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014 * GNU General Public License for more details.
015 *
016 * You should have received a copy of the GNU General Public License
017 * along with this program. If not, see <http://www.gnu.org/licenses/>.
018 */
019
020 package org.dllearner.prolog;
021
022 /**
023 *
024 * @author Sebastian Bader
025 *
026 */
027 public class Variable extends Term {
028 private String name;
029
030 public Variable(String name) {
031 this.name = name;
032 }
033
034 public String getName() {
035 return name;
036 }
037
038 public void setName(String name) {
039 this.name = name;
040 }
041
042 @Override
043 public boolean isGround() {
044 return false;
045 }
046
047 @Override
048 public String toString() {
049 return "V[" + name + "]";
050 }
051
052 @Override
053 public String toPLString() {
054 return name;
055 }
056
057 @Override
058 public Term getInstance(Variable variable, Term term) {
059 if (this.equals(variable)) {
060 return term;
061 }
062 return this;
063 }
064
065 @Override
066 public boolean equals(Object obj) {
067 if (obj == null)
068 return false;
069
070 Variable v;
071 try {
072 v = (Variable) obj;
073 } catch (ClassCastException cce) {
074 return false;
075 }
076
077 return name.equals(v.name);
078 }
079
080 @Override
081 public int hashCode() {
082 return name.hashCode();
083 }
084
085 @Override
086 public Object clone() {
087 return new Variable(name);
088 }
089 }