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 StringConstant extends Constant {
028            private String string;
029    
030            public StringConstant(String src) {
031                    string = src;
032            }
033    
034            public String getString() {
035                    return string;
036            }
037    
038            @Override
039            public boolean isGround() {
040                    return true;
041            }
042    
043            @Override
044            public String toString() {
045                    return "C[" + string + "]";
046            }
047    
048            @Override
049            public String toPLString() {
050                    return string;
051            }
052    
053            @Override
054            public Term getInstance(Variable variable, Term term) {
055                    return new StringConstant(string);
056            }
057    
058            @Override
059            public boolean equals(Object obj) {
060                    return string.equals(obj);
061            }
062    
063            @Override
064            public int hashCode() {
065                    return string.hashCode();
066            }
067    
068            @Override
069            public Object clone() {
070                    return new StringConstant(string);
071            }
072    }