示例#1
0
    /// <summary>
    /// creates a string
    /// if parse is true, this function automatically detects correct value type and parse to int, float...
    /// </summary>
    /// <param name="s">input string</param>
    /// <param name="parse">automatically detect correct value type and parse</param>
    public FBValue(string s, bool parse = false)
    {
        if (parse)
        {
            dataType = FBDataType.None;

            // try parsing to int
            try
            {
                intValue = int.Parse(s);
                dataType = FBDataType.Int;
            }
            catch
            {
                intValue = 0;
            }

            // try parsing to float
            if (s.Contains("."))
            {
                try
                {
                    floatValue = float.Parse(s);
                    dataType   = FBDataType.Float;
                }
                catch
                {
                    floatValue = intValue;
                }
            }
            else
            {
                floatValue = intValue;
            }

            // cannot parse
            if (dataType == FBDataType.None)
            {
                stringValue = s;
                dataType    = FBDataType.String;
            }
        }
        else
        {
            stringValue = s;
            dataType    = FBDataType.String;
        }
    }
示例#2
0
 /// <summary>
 /// creates from raw json data
 /// </summary>
 /// <param name="dataType">data type</param>
 /// <param name="rawData">raw json data</param>
 public FBValue(FBDataType dataType, string rawData)
 {
     this.dataType = dataType;
     if (dataType == FBDataType.Float)
     {
         floatValue = float.Parse(rawData);
     }
     else if (dataType == FBDataType.Int || dataType >= FBDataType.Class1)
     {
         intValue = int.Parse(rawData);
     }
     else if (dataType == FBDataType.String || dataType == FBDataType.Image)
     {
         stringValue = rawData;
     }
 }
示例#3
0
    /// <summary>
    /// loads all class definition
    /// </summary>
    /// <param name="json">json string</param>
    /// <returns>true on success, false on failure</returns>
    bool loadAllClassDefinition(string json)
    {
        JArray classDefinesJson = JsonConvert.DeserializeObject(json) as JArray;

        for (int i = 0; i < classDefinesJson.Count; i++)
        {
            JObject           classDefineJson = classDefinesJson[i] as JObject;
            int               classId         = int.Parse((string)classDefineJson["id"]);
            string            className       = ((string)classDefineJson["name"]);
            JArray            classFields     = classDefineJson["data"] as JArray;
            FBClassDefinition classDefine     = new FBClassDefinition(classId, className);
            for (int j = 0; j < classFields.Count; j++)
            {
                JObject      classFieldJson = classFields[j] as JObject;
                string       fieldName      = ((string)classFieldJson["fieldName"]);
                FBDataType   fieldType      = (FBDataType)((int)classFieldJson["dataType"]);
                FBClassField classField     = new FBClassField(fieldName, fieldType);
                classDefine.setField(classField);
            }
            FBClassData classData = new FBClassData(classDefine);
            addClassData(classData);
        }
        return(true);
    }
示例#4
0
 /// <summary>
 /// creates a float
 /// </summary>
 /// <param name="f">float</param>
 public FBValue(float f)
 {
     floatValue = f;
     dataType   = FBDataType.Float;
 }
示例#5
0
 /// <summary>
 /// creates an in
 /// </summary>
 /// <param name="i">int</param>
 public FBValue(int i)
 {
     intValue = i;
     dataType = FBDataType.Int;
 }
示例#6
0
 /// <summary>
 /// ctor
 /// </summary>
 /// <param name="name">name</param>
 /// <param name="dataType">dataType</param>
 public FBClassField(string name, FBDataType dataType)
 {
     this.name     = name;
     this.dataType = dataType;
 }
示例#7
0
 /// <summary>
 /// creates a class object id
 /// </summary>
 /// <param name="classId">class id</param>
 /// <param name="objId">object id</param>
 public FBValue(FBDataType classId, int objId)
 {
     intValue = objId;
     dataType = classId;
 }