public Object getProperty(String name){
		if (!hasProperty(name)) throw new IllegalArgumentException("property doesnt exist :"+name);
		if (name == null) throw new NullPointerException("name is null");
		switch (getGType(name)) {
		case G_TYPE_BOOLEAN:
			return getBooleanProperty(name);
		case G_TYPE_FLOAT:
			return getFloatProperty(name);
		case G_TYPE_INT:
			return getIntProperty(name);
		case G_TYPE_CHAR:
			return getCharProperty(name);
		case G_TYPE_STRING:
			return getStringProperty(name);
		case G_TYPE_LONG:
			return getLongProperty(name);
		case G_TYPE_DOUBLE:
			return getDoubleProperty(name);
		default: throw new IllegalArgumentException("value type not supported by jclutter");
		}
	}