+++ /dev/null
-/** @file\r
- This file is for surface area information retrieval.\r
-\r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- **/\r
-package org.tianocore.frameworkwizard.platform.ui.global;\r
-\r
-import java.util.Vector;\r
-\r
-public class LibraryClassDescriptor {\r
- public String className = "";\r
- public String supArchs = "";\r
- public String supModTypes = "";\r
- \r
- public LibraryClassDescriptor (String s1, String s2, String s3) {\r
- className = s1;\r
- if (s2 != null) {\r
- supArchs = s2; \r
- }\r
- if (s3 != null) {\r
- supModTypes = s3; \r
- }\r
- \r
- }\r
- \r
- public boolean equals(Object obj) {\r
- if (obj instanceof LibraryClassDescriptor) {\r
- LibraryClassDescriptor id = (LibraryClassDescriptor)obj;\r
- if (className.equals(id.className) && sameArchs (supArchs, id.supArchs) && sameModTypes(supModTypes, id.supModTypes)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
- else {\r
- return super.equals(obj);\r
- }\r
- }\r
- \r
- public int hashCode(){\r
- return (className + supArchs + supModTypes).toLowerCase().hashCode();\r
- }\r
- \r
- public String toString() {\r
- return "Library Class "+ className + " [SupArchs: " + supArchs + " SupModTypes: " + supModTypes + "]";\r
- }\r
- \r
- public boolean isSubSetByArchs (LibraryClassDescriptor lcd) {\r
- if (className.equals(lcd.className)) {\r
- Vector<String> vArchs1 = getVectorFromString(supArchs);\r
- Vector<String> vArchs2 = getVectorFromString(lcd.supArchs);\r
- \r
- if (isSubSet(vArchs1, vArchs2)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- \r
- public boolean isSubSetByModTypes (LibraryClassDescriptor lcd) {\r
- if (className.equals(lcd.className)) {\r
- Vector<String> vModTypes1 = getVectorFromString(supModTypes);\r
- Vector<String> vModTypes2 = getVectorFromString(lcd.supModTypes);\r
- \r
- if (isSubSet(vModTypes1, vModTypes2)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- \r
- public boolean hasInterSectionWith (LibraryClassDescriptor lcd) {\r
- if (className.equals(lcd.className)) {\r
- Vector<String> vArchs1 = getVectorFromString(supArchs);\r
- Vector<String> vArchs2 = getVectorFromString(lcd.supArchs);\r
- if (vArchs1.size() == 0 || (vArchs1.size() == 1 && vArchs1.get(0).equalsIgnoreCase(""))) {\r
- return true;\r
- }\r
- if (vArchs2.size() == 0 || (vArchs2.size() == 1 && vArchs2.get(0).equalsIgnoreCase(""))) {\r
- return true;\r
- }\r
- vArchs1.retainAll(vArchs2);\r
- if (vArchs1.size() > 0) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- \r
- private boolean isSubSet (Vector<String> v1, Vector<String> v2) {\r
- if (v2.size() == 0 || (v2.size() == 1 && v2.get(0).equalsIgnoreCase(""))) {\r
- return true;\r
- }\r
- if (v2.containsAll(v1)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
- \r
- public Vector<String> getVectorFromString (String s) {\r
- if (s == null || s.equals("null")) {\r
- s = "";\r
- }\r
- String[] sa1 = s.split(" ");\r
- Vector<String> v = new Vector<String>();\r
- for (int i = 0; i < sa1.length; ++i) {\r
- v.add(sa1[i]);\r
- }\r
- return v;\r
- }\r
- \r
- private boolean sameArchs (String archs1, String archs2) {\r
- Vector<String> vArchs1 = getVectorFromString(archs1);\r
- Vector<String> vArchs2 = getVectorFromString(archs2);\r
- \r
- if (vArchs1.containsAll(vArchs2) && vArchs2.containsAll(vArchs1)) {\r
- return true;\r
- }\r
- return false;\r
- }\r
- \r
- private boolean sameModTypes (String modTypes1, String modTypes2) {\r
- return sameArchs(modTypes1, modTypes2);\r
- }\r
-}
\ No newline at end of file