package com.jinoh.ruby.marshal; public class Symbol implements CharSequence, Cloneable { String mName; public Symbol(String name) { mName = name; } @Override public char charAt(int index) { return mName.charAt(index); } @Override public int length() { return mName.length(); } @Override public CharSequence subSequence(int start, int end) { return mName.subSequence(start, end); } @Override public String toString () { return mName; } @Override protected Object clone() throws CloneNotSupportedException { return new Symbol(mName); } @Override public boolean equals(Object o) { return (o instanceof Symbol) && o.toString().equals(mName); } @Override public int hashCode() { return mName.hashCode(); } }