/* This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2012 Servoy BV This program is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program; if not, see http://www.gnu.org/licenses or write to the Free Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ package com.servoy.j2db.solutionmodel; import com.servoy.base.scripting.annotations.ServoyClientSupport; import com.servoy.j2db.persistence.LiteralDataprovider; /** * Solution relation item. * * @author rgansevles * * @since 6.1 */ public interface ISMRelationItem extends ISMHasUUID { /** * Constant for using literals in solution model in relations. * Strings must be passed as quoted value to make a distinction between string '5' and number 5. * * @sample * relation.newRelationItem(JSRelationItem.LITERAL_PREFIX + "'hello'",'=', 'mytextfield'); */ @ServoyClientSupport(mc = false, wc = true, sc = true) public static final String LITERAL_PREFIX = LiteralDataprovider.LITERAL_PREFIX; /** * The name of the column from the destination table * that this relation item is based on. * * @sample * var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN); * var criteria = relation.newRelationItem('parent_table_id', '=', 'child_table_parent_id'); * criteria.primaryDataProviderID = 'parent_table_text'; * criteria.foreignColumnName = 'child_table_text'; * criteria.operator = '<'; */ public String getForeignColumnName(); /** * The operator that defines the relationship between the primary dataprovider * and the foreign column. * * @sampleas getForeignColumnName() * @see #getForeignColumnName() */ public String getOperator(); /** * The name of the column from the source table * that this relation item is based on. * * @sampleas getForeignColumnName() * @see #getForeignColumnName() */ public String getPrimaryDataProviderID(); public void setOperator(String operator); public void setForeignColumnName(String arg); public void setPrimaryDataProviderID(String arg); }