/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.engine.dbmodel; import com.enonic.esl.sql.model.Column; import com.enonic.esl.sql.model.Constants; import com.enonic.esl.sql.model.View; public final class ContentView extends View { public Column con_lKey = new Column( "con_lKey", "@key", Constants.COLUMN_INTEGER ); public Column cov_lKey = new Column( "cov_lKey", "@versionkey", Constants.COLUMN_INTEGER ); public Column cat_lKey = new Column( "cat_lKey", "categoryname/@key", Constants.COLUMN_INTEGER ); public Column cat_uni_lKey = new Column( "cat_uni_lKey", "@unitkey", Constants.COLUMN_INTEGER ); public Column cat_cty_lKey = new Column( "cat_cty_lKey", "@contenttypekey", Constants.COLUMN_INTEGER ); public Column cat_sName = new Column( "cat_sName", "categoryname", Constants.COLUMN_VARCHAR ); public Column con_lan_lKey = new Column( "con_lan_lKey", "@languagekey", Constants.COLUMN_INTEGER ); public Column usr_hOwner = new Column( "usr_hOwner", "owner/@key", Constants.COLUMN_CHAR ); public Column usr_sOwnerUID = new Column( "usr_sOwnerUID", "owner/@uid", Constants.COLUMN_VARCHAR ); public Column usr_sOwnerName = new Column( "usr_sOwnerName", "owner", Constants.COLUMN_VARCHAR ); public Column usr_bOwnerDeleted = new Column( "usr_bOwnerDeleted", "owner/@deleted", Constants.COLUMN_BOOLEAN ); public Column con_dteCreated = new Column( "con_dteCreated", "@created", Constants.COLUMN_CREATED_TIMESTAMP ); public Column cov_lStatus = new Column( "cov_lStatus", "@status", Constants.COLUMN_INTEGER ); public Column cov_lState = new Column( "cov_lState", "@state", Constants.COLUMN_INTEGER ); public Column con_dtePublishFrom = new Column( "con_dtePublishFrom", "@publishfrom", Constants.COLUMN_TIMESTAMP ); public Column con_dtePublishTo = new Column( "con_dtePublishTo", "@publishto", Constants.COLUMN_TIMESTAMP ); public Column cov_sTitle = new Column( "cov_sTitle", "title", Constants.COLUMN_VARCHAR ); public Column cov_xmlContentData = new Column( "cov_xmlContentData", ".", Constants.COLUMN_XML ); public Column con_lPriority = new Column( "con_lPriority", "@priority", Constants.COLUMN_INTEGER ); public Column usr_hModifier = new Column( "usr_hModifier", "modifier/@key", Constants.COLUMN_CHAR ); public Column usr_sModifierUID = new Column( "usr_sModifierUID", "modifier/@uid", Constants.COLUMN_VARCHAR ); public Column usr_sModifierName = new Column( "usr_sModifierName", "modifier", Constants.COLUMN_VARCHAR ); public Column usr_bModDeleted = new Column( "usr_bModDeleted", "modifier/@deleted", Constants.COLUMN_BOOLEAN ); public Column cov_dteTimestamp = new Column( "cov_dteTimestamp", "@timestamp", Constants.COLUMN_CURRENT_TIMESTAMP ); public final static String STATE_SQL_CASE = "(case when cov_lStatus != 2 then cov_lStatus " + "when con_cov_lKey != cov_lKey then cov_lStatus " + "when con_dtePublishFrom is null and con_dtePublishTo is null then 2 " + "when con_dtePublishFrom is null and con_dtePublishTo <= @currentTimestamp@ then 6 " + "when con_dtePublishFrom is null and con_dtePublishTo > @currentTimestamp@ then 2 " + "when con_dtePublishFrom > @currentTimestamp@ then 4 " + "when con_dtePublishFrom <= @currentTimestamp@ and ( con_dtePublishTo is null OR con_dtePublishTo > @currentTimestamp@ ) then 5 " + "when con_dtePublishTo <= @currentTimestamp@ then 6 " + "else 0 end)"; private final static String SQL = "select con_lKey, cov_lKey, cat_lKey, cat_uni_lKey, cat_cty_lKey, " + "cat_sName, con_lan_lKey, con_usr_hOwner as usr_hOwner, o.usr_sUID as usr_sOwnerUID, " + "o.usr_sFullName as usr_sOwnerName, o.usr_bIsDeleted as usr_bOwnerDeleted, " + "con_dteCreated, cov_lStatus, " + STATE_SQL_CASE + " as cov_lState, " + "con_dtePublishFrom, con_dtePublishTo, cov_sTitle, cov_xmlContentData, con_lPriority, " + "cov_usr_hModifier as usr_hModifier, m.usr_sUID as usr_sModifierUID, m.usr_sFullName as usr_sModifierName, " + "m.usr_bIsDeleted as usr_bModDeleted, cov_dteTimestamp " + "from tContent left join tContentVersion on con_cov_lKey = cov_lKey " + "left join tCategory on con_cat_lKey = cat_lKey left join tUser o on con_usr_hOwner = o.usr_hKey " + "left join tUser m on cov_usr_hModifier = m.usr_hKey where con_bDeleted = 0 and cat_bDeleted = 0"; private static final ContentView Content = new ContentView( "vContent" ); private ContentView( String tableName ) { super( tableName, "content", "contents", SQL, 9 ); addColumn( con_lKey ); addColumn( cov_lKey ); addColumn( cat_lKey ); addColumn( cat_uni_lKey ); addColumn( cat_cty_lKey ); addColumn( cat_sName ); addColumn( con_lan_lKey ); addColumn( usr_hOwner ); addColumn( usr_sOwnerUID ); addColumn( usr_sOwnerName ); addColumn( usr_bOwnerDeleted ); addColumn( con_dteCreated ); addColumn( cov_lStatus ); addColumn( cov_lState ); addColumn( con_dtePublishFrom ); addColumn( con_dtePublishTo ); addColumn( cov_sTitle ); addColumn( cov_xmlContentData ); addColumn( con_lPriority ); addColumn( usr_hModifier ); addColumn( usr_sModifierUID ); addColumn( usr_sModifierName ); addColumn( usr_bModDeleted ); addColumn( cov_dteTimestamp ); } public static ContentView getInstance() { return Content; } }