示例#1
0
        public virtual void testAddAll()
        {
            JDFAttributeMap m1 = new JDFAttributeMap("a1", "v1");

            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            JDFAttributeMap m3 = new JDFAttributeMap(m1);

            m3.put("a2", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap();

            v.Add(m1);
            v.Add(m2);
            VJDFAttributeMap v2 = new VJDFAttributeMap();

            v2.Add(m2);
            v2.Add(m3);
            v.addAll(v2);
            Assert.AreEqual(4, v.Count);
            Assert.IsTrue(v.Contains(m1));
            Assert.IsTrue(v.Contains(m2));
            Assert.IsTrue(v.Contains(m3));
        }
示例#2
0
        public virtual void testCopy()
        {
            JDFAttributeMap  m1 = new JDFAttributeMap("a1", "v1");
            VJDFAttributeMap v2 = new VJDFAttributeMap();

            v2.Add(new JDFAttributeMap(m1));
            VJDFAttributeMap v3 = new VJDFAttributeMap(v2);

            Assert.AreEqual(v3, v2);
        }
示例#3
0
 ///
 ///	 <summary> * Appends all the specified elements to the end of this Vector
 ///	 *  </summary>
 ///	 * <param name="obj"> the given element </param>
 ///
 public virtual void addAll(VJDFAttributeMap obj)
 {
     if (obj != null)
     {
         for (int i = 0; i < obj.Count; i++)
         {
             m_vec.Add(obj[i]);
         }
     }
 }
示例#4
0
 ///
 ///	 <summary> * copy constructor - clones the vector including the contents!
 ///	 *  </summary>
 ///	 * <param name="v"> the VJDFAttributeMap to copy </param>
 ///
 public VJDFAttributeMap(VJDFAttributeMap v)
 {
     if (v != null)
     {
         Clear();
         int size = v.Count;
         for (int i = 0; i < size; i++)
         {
             Add(new JDFAttributeMap(v[i]));
         }
     }
 }
示例#5
0
        public virtual void testShowKeys()
        {
            JDFAttributeMap m1 = new JDFAttributeMap();

            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            m2.put("a3", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap();

            v.Add(m1);
            v.Add(m2);
            Assert.AreEqual("[0](a2 = v2)-[1](a2 = v3) (a3 = v3)", v.showKeys("-", " "));
        }
示例#6
0
 ///
 ///	 <summary> * Method subMap.
 ///	 *  </summary>
 ///	 * <param name="vMap"> the vector submaps to check against </param>
 ///	 * <returns> true if this has at least one entry that vMap contains at least a submap of </returns>
 ///
 public virtual bool subMap(VJDFAttributeMap vMap)
 {
     if (vMap == null)
     {
         return(true);
     }
     for (int i = 0; i < vMap.Count; i++)
     {
         if (subMap(vMap[i]))
         {
             return(true);
         }
     }
     return(false);
 }
示例#7
0
        public virtual void testOverlapsMap()
        {
            JDFAttributeMap m1 = new JDFAttributeMap("a1", "v1");

            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap();

            v.Add(m1);
            v.Add(m2);
            Assert.IsTrue(v.overlapsMap(m1));
            Assert.IsFalse(v.overlapsMap(new JDFAttributeMap("a2", "v4")));
        }
示例#8
0
        public virtual void testPut()
        {
            JDFAttributeMap  m1 = new JDFAttributeMap("a1", "v1");
            VJDFAttributeMap v2 = new VJDFAttributeMap();

            v2.Add(m1);
            VJDFAttributeMap v3 = new VJDFAttributeMap(v2);

            Assert.AreEqual(v3, v2);
            v3.put("a2", "b");
            m1.put("a2", "b");
            Assert.AreEqual(v2, v3);
            VJDFAttributeMap v4 = new VJDFAttributeMap((VJDFAttributeMap)null);

            v4.put("a1", "b1");
            Assert.AreEqual(1, v4.Count);
        }
示例#9
0
        ///
        ///	 <summary> * reduce each JDFAttributeMap in <code>this</code> by keySet
        ///	 *  </summary>
        ///	 * <param name="keySet"> </param>
        ///
        public virtual void reduceMap(ICollection <string> keySet)
        {
            VJDFAttributeMap v = new VJDFAttributeMap();

            for (int i = 0; i < m_vec.Count; i++)
            {
                JDFAttributeMap map      = m_vec[i];
                bool            bNullMap = map.IsEmpty();
                map.reduceMap(keySet);

                if (bNullMap || !map.IsEmpty())
                {
                    v.appendUnique(map);
                }
            }
            m_vec = v.getVector();
        }
示例#10
0
        public virtual void reduceKey(ICollection <string> vKeys)
        {
            VJDFAttributeMap v = new VJDFAttributeMap();

            for (int i = 0; i < m_vec.Count; i++)
            {
                JDFAttributeMap map = m_vec[i];
                map.reduceMap(vKeys);

                if (!map.IsEmpty())
                {
                    v.appendUnique(map);
                }
            }

            m_vec = v.getVector();
        }
示例#11
0
        public virtual void testClone()
        {
            JDFAttributeMap m1 = new JDFAttributeMap("a1", "v1");

            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap((VJDFAttributeMap)null);

            v.Add(m1);
            v.Add(m2);
            VJDFAttributeMap v2 = new VJDFAttributeMap(v);

            Assert.AreEqual(v2, v);
            m1.put("a3", "a4");
            Assert.AreNotEqual(v2, v, "modification did not migrate!");
        }
示例#12
0
        ///
        ///	 <summary> * Method overlapMap.
        ///	 *  </summary>
        ///	 * <param name="vMap"> the vector submaps to check against </param>
        ///	 * <returns> true if this has at least one entry that vMap contains at least a submap or supermap of </returns>
        ///
        public virtual bool overlapMap(VJDFAttributeMap vMap)
        {
            if (vMap == null)
            {
                return(true);
            }

            int size = vMap.Count;

            for (int i = 0; i < size; i++)
            {
                if (overlapMap(vMap[i]))
                {
                    return(true);
                }
            }
            return(false);
        }
示例#13
0
        public virtual void testReduceMap()
        {
            JDFAttributeMap  m1 = new JDFAttributeMap("a1", "v1");
            VJDFAttributeMap v2 = new VJDFAttributeMap();

            v2.Add(new JDFAttributeMap(m1));
            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap();

            v.Add(m1);
            v.Add(m2);
            VString vs = new VString("a1", " ");

            v.reduceMap(vs.getSet());
            Assert.AreEqual(v2, v);
        }
示例#14
0
        public virtual void testEquals()
        {
            JDFAttributeMap m1 = new JDFAttributeMap("a1", "v1");

            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap();

            v.Add(m1);
            v.Add(m2);
            VJDFAttributeMap v2 = new VJDFAttributeMap();

            v2.Add(m2);
            v2.Add(m1);
            Assert.AreEqual(v2, v, "mixed ordering");
            v2.Add(m1);
            Assert.AreNotEqual(v2, v, "mixed ordering -other cardinality ");
        }
示例#15
0
        public virtual void testUnify()
        {
            JDFAttributeMap m1 = new JDFAttributeMap("a1", "v1");

            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            JDFAttributeMap m3 = new JDFAttributeMap(m1);

            m3.put("a2", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap();

            v.Add(m1);
            v.Add(m2);
            v.Add(m3);
            v.unify();
            Assert.AreEqual(2, v.Count);
            Assert.IsTrue(v.Contains(m1));
            Assert.IsTrue(v.Contains(m2));
            Assert.IsTrue(v.Contains(m3));
            v.Add(m1);
            v.Add(m2);
            v.Add(m3);
            v.Add(m1);
            v.Add(m2);
            v.Add(m3);
            v.unify();
            Assert.AreEqual(2, v.Count);
            Assert.IsTrue(v.Contains(m1));
            Assert.IsTrue(v.Contains(m2));
            Assert.IsTrue(v.Contains(m3));

            v.Add(null);
            v.unify();
            Assert.AreEqual(3, v.Count);
            Assert.IsTrue(v.Contains(m1));
            Assert.IsTrue(v.Contains(m2));
            Assert.IsTrue(v.Contains(m3));
            Assert.IsTrue(v.Contains(null));
        }
示例#16
0
        public virtual void testSubMap()
        {
            JDFAttributeMap m1 = new JDFAttributeMap("a1", "v1");

            m1.put("a2", "v2");
            JDFAttributeMap m2 = new JDFAttributeMap(m1);

            m2.put("a2", "v3");
            VJDFAttributeMap v = new VJDFAttributeMap();

            v.Add(m1);
            v.Add(m2);
            Assert.IsTrue(v.subMap(m1));
            Assert.IsTrue(v.subMap(m2));
            v.put("a3", "v4");
            JDFAttributeMap m3 = new JDFAttributeMap(m1);

            Assert.IsTrue(v.subMap(m3));
            m3.put("a3", "v5");
            Assert.IsFalse(v.subMap(m3));
        }
示例#17
0
        ///
        ///	 <summary> * equals - Compares two map vectors, returns true if content equal regardless of element order, otherwise false.<br>
        ///	 * If input is not of type VJDFAttributeMap, result of superclasses equals method is returned.
        ///	 *  </summary>
        ///	 * <param name="other"> in this case VJDFAttributeMap to compare
        ///	 *  </param>
        ///	 * <returns> boolean - true if the maps are equal, otherwise false </returns>
        ///
        public override bool Equals(object other)
        {
            if (this == other)
            {
                return(true);
            }
            if (other == null)
            {
                return(false);
            }
            if (!(other is VJDFAttributeMap))
            {
                return(false);
            }

            int size = Count;

            if (size != ((VJDFAttributeMap)other).Count)
            {
                return(false);
            }

            VJDFAttributeMap vOther = new VJDFAttributeMap((JDFAttributeMap[])((VJDFAttributeMap)other).getVector().ToArray());

            for (int i = 0; i < size; i++)
            {
                JDFAttributeMap map   = this[i];
                int             index = vOther.IndexOf(map);
                if (index < 0)
                {
                    return(false);
                }
                vOther.RemoveAt(index);
            }
            return(true);
        }
示例#18
0
 ///
 ///	 <summary> * Method appendUnique.
 ///	 *  </summary>
 ///	 * <param name="map"> maps to append </param>
 ///
 public virtual void appendUnique(VJDFAttributeMap map)
 {
     addAll(map);
     unify();
 }