+ // Find the full flight data type given name only
+ // Note: this way of doing it requires that custom expressions always come before flight data in the file,
+ // not the nicest but this is always the case anyway.
+ private FlightDataType findFlightDataType(String key, String name){
+
+ // Look in built in types by key.
+ if ( key != null ) {
+ for (FlightDataType t : FlightDataType.ALL_TYPES){
+ if (t.getKey().equals(key) ){
+ return t;
+ }
+ }
+ }
+ // Look in built in types by name.
+ for (FlightDataType t : FlightDataType.ALL_TYPES){
+ if (t.getName().equals(name) ){
+ return t;
+ }
+ }
+
+ // Look in custom expressions
+ for (CustomExpression exp : simHandler.getCustomExpressions()){
+ if (exp.getName().equals(name) ){
+ return exp.getType();
+ }
+ }
+
+ // Look in custom expressions, meanwhile set priority based on order in file
+ /*
+ int totalExpressions = simHandler.getCustomExpressions().size();
+ for (int i=0; i<totalExpressions; i++){
+ CustomExpression exp = simHandler.getCustomExpressions().get(i);
+ if (exp.getName().equals(name) ){
+ FlightDataType t = exp.getType();
+ t.setPriority(-1*(totalExpressions-i));
+ return exp.getType();
+ }
+ }
+ */
+
+ log.warn("Could not find the flight data type '"+name+"' used in the XML file. Substituted type with unknown symbol and units.");
+ return FlightDataType.getType(name, "Unknown", UnitGroup.UNITS_NONE);
+ }
+