package com.drawbridge.jsengine.jsobjects;
public class JSString extends JSObject
{
public String mValue;
public JSString(String string){
mValue = string;
//TODO make sure these methods work
properties.put("charAt", new JSNativeFunction(this, "charAt", new Class<?>[] {JSString.class, JSNumber.class}));
properties.put("charCodeAt", new JSNativeFunction(this, "charCodeAt", new Class<?>[] {JSString.class,JSNumber.class}));
properties.put("concat", new JSNativeFunction(this, "concat", new Class<?>[] {JSString.class,JSString.class}));
properties.put("fromCharCode", new JSNativeFunction(this, "fromCharCode", new Class<?>[] {JSString.class,JSString.class}));
properties.put("indexOf", new JSNativeFunction(this, "indexOf", new Class<?>[] {JSString.class,JSString.class}));
properties.put("lastIndexOf", new JSNativeFunction(this, "lastIndexOf", new Class<?>[] {JSString.class,JSString.class}));
properties.put("match", new JSNativeFunction(this, "match", new Class<?>[] {JSString.class,JSString.class}));
properties.put("replace", new JSNativeFunction(this, "replace", new Class<?>[] {JSString.class,JSString.class}));
properties.put("search", new JSNativeFunction(this, "search", new Class<?>[] {JSString.class,JSString.class}));
properties.put("slice", new JSNativeFunction(this, "slice", new Class<?>[] {JSString.class,JSString.class}));
properties.put("split", new JSNativeFunction(this, "split", new Class<?>[] {JSString.class,JSString.class}));
properties.put("substr", new JSNativeFunction(this, "substr", new Class<?>[] {JSString.class,JSString.class}));
properties.put("substring", new JSNativeFunction(this, "substring", new Class<?>[] {JSString.class,JSString.class}));
properties.put("toLowerCase", new JSNativeFunction(this, "toLowerCase", new Class<?>[] {JSString.class,JSString.class}));
properties.put("toUpperCase", new JSNativeFunction(this, "toUpperCase", new Class<?>[] {JSString.class}));
properties.put("trim", new JSNativeFunction(this, "trim", null));
properties.put("valueOf", new JSNativeFunction(this, "valueOf", null));
}
@Override
public JSType getProperty(String name){
return properties.get(name);
}
@Override
public void addProperty(String name, JSType value){
// Can't add properties to a number
}
@Override
public String toString(){
return "\"" + mValue + "\"";
}
@Override
public boolean equals(Object obj){
if(obj instanceof JSString){
if(this.mValue.equals(((JSString) obj).mValue))
return true;
}
return false;
}
}