Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ************************************************************************
  #
  #  DivConq
  #
  #  http://divconq.com/
  #
  #  Copyright:
  #    Copyright 2014 eTimeline, LLC. All rights reserved.
  #
 #  License:
 #    See the license.txt file in the project's top-level directory for details.
 #
 #  Authors:
 #    * Andy White
 #
 ************************************************************************ */
 package divconq.schema;
 
 import java.util.List;
 
 
 public class TypeOptionsList {
 	protected Schema schema = null;
 	protected List<DataTypeoptions = new ArrayList<DataType>();
 	
 	public TypeOptionsList(Schema schema) {
 		this. = schema;
 	}
 
 	public RecordStruct toJsonDef(int lvl) {
 		RecordStruct def = new RecordStruct();
 		
 		ListStruct rests = new ListStruct();
 		
 		for (DataType dt : this.
 			rests.addItem(dt.toJsonDef(lvl));
 		
 		def.setField("Options"rests);
 		
 		return def;
 	}
 	
 	public void compile(XElement defOperationResult mr) {		
 		String t1 = def.getAttribute("Type");
 		
 		if (StringUtil.isNotEmpty(t1)) {
 			this. = this...lookupOptionsType(t1mr);
 			return;
 		}
 		
 		for (XElement dtel : def.selectAll("*")) { 
 			DataType dt = new DataType(this.);
 			dt.load(mrdtel);
 			dt.compile(mr);
 			this..add(dt);
 		}
 	}
 	
 	// don't call this with data == null from a field if field required - required means "not null" so put the error in
 	public boolean validate(Struct dataOperationResult mr) {
 		if (data == null)
 			return false;
 		
 		if (this..size() == 0) {
 			mr.errorTr(437, data);			
 			return false;
 		}
 		
 		if (this..size() == 1) 
 			return this..get(0).validate(datamr);
 		
 		for (DataType dt : this.) {
 			if (dt.match(datamr)) 
 				return dt.validate(datamr);
 		}
 		
 		mr.errorTr(438, data);			
 		return false;
 	}
 	
 	public Struct wrap(Object dataOperationResult mr) {
 		if (data == null
 			return null;
 		
 		if (this..size() == 0) 
 			return null;
 		
 		if (this..size() == 1) 
 			return this..get(0).wrap(datamr);
 		
 		for (DataType dt : this.) {
 			if (dt.match(datamr)) 
				return dt.wrap(datamr);
		}
		return null;
	}
		if (this..size() == 0) 
			return null;
		return this..get(0);
	}
New to GrepCode? Check out our FAQ X