示例#1
0
        public bool setRefValues <T>(WiktCtx ctx, Helper owner, predicates pred, ref List <int> flds) where T : Helper
        {
            if (predicate != pred)
            {
                return(false);
            }
            var obj = ctx.designGetObj(objDataId);

            if (flds == null)
            {
                flds = new List <int>();
            }
            if (obj == null)
            {
                ctx.log(owner, pred, "REF not found");
            }
            else if (!(obj is T))
            {
                ctx.log(owner, pred, $"REL: expected {typeof(T).Name}, found {obj.GetType().Name}");
            }
            else
            {
                if (flds.Contains(obj.id))
                {
                    ctx.log(owner, pred, "DUPL");
                }
                flds.Add(obj.id);
            }
            return(true);
        }
示例#2
0
 public bool setValueWithLang(WiktCtx ctx, Helper owner, predicates pred, ref string fld, ref string lang)
 {
     if (predicate != pred)
     {
         return(false);
     }
     setValueLow(ctx, owner, pred, ref fld);
     if (objLang != null)
     {
         if (pred == predicates.dbnary_writtenForm)
         {
             lang = lang == null ? objLang : $"{lang}|{objLang}";
         }
         else
         {
             if (lang != null)
             {
                 ctx.log(owner, pred, $"DUPL LANG");
             }
             if (objLang != null)
             {
                 lang = objLang;
             }
         }
     }
     return(true);
 }
示例#3
0
        public bool setRefValue <T>(WiktCtx ctx, Helper owner, predicates pred, ref int?fld) where T : Helper
        {
            if (predicate != pred)
            {
                return(false);
            }
            if (fld != null)
            {
                ctx.log(owner, pred, "DUPL");
            }
            var obj = ctx.designGetObj(objDataId);

            if (obj == null)
            {
                ctx.log(owner, pred, "REL not found");
            }
            else if (!(obj is T))
            {
                ctx.log(owner, pred, $"REL: expected {typeof(T).Name}, found {obj.GetType().Name}");
            }
            else
            {
                fld = obj.id;
            }
            return(true);
        }
示例#4
0
 public bool setValue(WiktCtx ctx, Helper owner, predicates pred, ref string fld)
 {
     if (predicate != pred)
     {
         return(false);
     }
     setValueLow(ctx, owner, pred, ref fld);
     return(true);
 }
示例#5
0
 public bool setUriValue <T>(WiktCtx ctx, Helper owner, predicates pred, ref T fld) where T : Enum
 {
     if (predicate != pred)
     {
         return(false);
     }
     //if ((byte)(object)fld != 0) ctx.log(owner, pred, "DUPL");
     fld = (T)(object)(byte)((byte)(object)fld | (byte)(object)ConstMan.enumValue <T>(objUri));
     return(true);
 }
示例#6
0
 public static bool parsePredicate(string url, out predicates pred, out PredicateType type) //, out Dictionary<string, byte> urlValues) {
 {
     pred = predicates.no; type = PredicateType.no;
     if (!string2Pred.TryGetValue(url, out pred))
     {
         return(false);
     }
     type = predicateTypes[pred];
     //if (type == PredicateType.UriValuesProps) urlValues = ConstMan.enumValueMap[url];
     return(true);
 }
示例#7
0
 void setValueLow(WiktCtx ctx, Helper owner, predicates pred, ref string fld)
 {
     if (pred == predicates.ontolex_writtenRep || pred == predicates.skos_example)
     {
         fld = fld == null ? objValue : $"{fld}|{objValue}";
     }
     else
     {
         if (fld != null)
         {
             ctx.log(owner, pred, $"DUPL");
         }
         fld = objValue;
     }
 }
示例#8
0
        public bool setUriValues <T>(WiktCtx ctx, Helper owner, predicates pred, ref List <T> flds) where T : Enum
        {
            if (predicate != pred)
            {
                return(false);
            }
            if (flds == null)
            {
                flds = new List <T>();
            }
            T fld = (T)(object)(byte)0;

            setUriValue <T>(ctx, owner, pred, ref fld);
            if (flds.Contains(fld))
            {
                ctx.log(owner, pred, "DUPL");
            }
            flds.Add(fld);
            return(true);
        }
示例#9
0
 public bool setIntValue(WiktCtx ctx, Helper owner, predicates pred, ref int?fld)
 {
     if (predicate != pred)
     {
         return(false);
     }
     if (fld != null)
     {
         ctx.log(owner, pred, "DUPL");
     }
     if (int.TryParse(objValue, out int v))
     {
         fld = v;
     }
     else
     {
         ctx.log(owner, pred, $"INT wrong value");
     }
     return(true);
 }