Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/sourcetools/com.ibm.uma/com/ibm/uma/om/parser/FlagParser.java
6005 views
1
/*******************************************************************************
2
* Copyright (c) 2001, 2017 IBM Corp. and others
3
*
4
* This program and the accompanying materials are made available under
5
* the terms of the Eclipse Public License 2.0 which accompanies this
6
* distribution and is available at https://www.eclipse.org/legal/epl-2.0/
7
* or the Apache License, Version 2.0 which accompanies this distribution and
8
* is available at https://www.apache.org/licenses/LICENSE-2.0.
9
*
10
* This Source Code may also be made available under the following
11
* Secondary Licenses when the conditions for such availability set
12
* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
13
* General Public License, version 2 with the GNU Classpath
14
* Exception [1] and GNU General Public License, version 2 with the
15
* OpenJDK Assembly Exception [2].
16
*
17
* [1] https://www.gnu.org/software/classpath/license.html
18
* [2] http://openjdk.java.net/legal/assembly-exception.html
19
*
20
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
21
*******************************************************************************/
22
package com.ibm.uma.om.parser;
23
24
import org.w3c.dom.NamedNodeMap;
25
import org.w3c.dom.Node;
26
27
import com.ibm.uma.om.*;
28
29
public class FlagParser {
30
static public Flag parse(Node item, String containingFile) {
31
Flag returnFlag = null;
32
if ( item.getNodeName().equalsIgnoreCase("group") ) {
33
NamedNodeMap nodeMap = item.getAttributes();
34
Node groupNameNode = nodeMap.getNamedItem("name");
35
String groupName = null;
36
if ( groupNameNode != null ) {
37
groupName = groupNameNode.getNodeValue();
38
}
39
//System.out.println("Adding flag group: " + groupName + " in containingFile" + containingFile);
40
returnFlag = new Flag(groupName, containingFile);
41
} else if ( item.getNodeName().equalsIgnoreCase("flag") ) {
42
NamedNodeMap nodeMap = item.getAttributes();
43
Node flagNameNode = nodeMap.getNamedItem("name");
44
Node flagValueNode = nodeMap.getNamedItem("value");
45
String value = null;
46
if ( flagValueNode != null ) {
47
value = flagValueNode.getNodeValue();
48
}
49
Node flagCFlagNode = nodeMap.getNamedItem("cflag");
50
Node flagCXXFlagNode = nodeMap.getNamedItem("cxxflag");
51
Node flagCPPFlagNode = nodeMap.getNamedItem("cppflag");
52
Node flagASMFlagNode = nodeMap.getNamedItem("asmflag");
53
Node flagDefinitionNode = nodeMap.getNamedItem("definition");
54
boolean cflag = true;
55
if ( flagCFlagNode.getNodeValue().equalsIgnoreCase("false") ) {
56
cflag = false;
57
}
58
boolean cxxflag = true;
59
if ( flagCXXFlagNode.getNodeValue().equalsIgnoreCase("false") ) {
60
cxxflag = false;
61
}
62
boolean cppflag = true;
63
if ( flagCPPFlagNode.getNodeValue().equalsIgnoreCase("false") ) {
64
cppflag = false;
65
}
66
boolean asmflag = true;
67
if ( flagASMFlagNode.getNodeValue().equalsIgnoreCase("false") ) {
68
asmflag = false;
69
}
70
boolean definition = true;
71
if ( flagDefinitionNode.getNodeValue().equalsIgnoreCase("false") ) {
72
definition = false;
73
}
74
returnFlag = new Flag(flagNameNode.getNodeValue(), value, containingFile, cflag, cxxflag, cppflag, asmflag, definition );
75
}
76
Parser.populatePredicateList(item.getChildNodes(), returnFlag);
77
return returnFlag;
78
}
79
}
80
81