/* ************************************************************************ # # DivConq # # http://divconq.com/ # # Copyright: # Copyright 2012 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.db.query; import divconq.struct.RecordStruct; import divconq.struct.Struct; import divconq.util.StringUtil; /** * A database field to order results in a query. * Field may be formated and also have a direction. * * @author Andy * */ public class OrderForeignField implements IOrderField { protected RecordStruct column = new RecordStruct(); /** * @param field name of foreign key field * @param foreignfield name of foreign field to use for value */ public OrderForeignField(String field, String foreignfield) { this.column.setField("Field", field); this.column.setField("ForeignField", foreignfield); } /** * @param field name of foreign key field * @param foreignfield name of foreign field to use for value * @param direction if this field should be traversed */ public OrderForeignField(String field, String foreignfield, OrderAs direction) { this(field, foreignfield); if (direction != null) this.column.setField("Name", direction.toString()); } /** * @param field name of foreign key field * @param foreignfield name of foreign field to use for value * @param direction if this field should be traversed * @param format formatting for return value */ public OrderForeignField(String field, String foreignfield, OrderAs direction, String format) { this(field, foreignfield, direction); if (StringUtil.isNotEmpty(format)) this.column.setField("Format", format); } /* (non-Javadoc) * @see divconq.db.query.ISelectItem#getSelection() */ @Override public Struct getParams() { return this.column; } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return this.column.toString(); } }