Songbird / Development / Songbird Add-Ons API Documentation

components/sqlbuilder/public/sbISQLBuilder.idl

Go to the documentation of this file.
00001 /*
00002 //
00003 // BEGIN SONGBIRD GPL
00004 //
00005 // This file is part of the Songbird web player.
00006 //
00007 // Copyright(c) 2005-2008 POTI, Inc.
00008 // http://songbirdnest.com
00009 //
00010 // This file may be licensed under the terms of of the
00011 // GNU General Public License Version 2 (the "GPL").
00012 //
00013 // Software distributed under the License is distributed
00014 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
00015 // express or implied. See the GPL for the specific language
00016 // governing rights and limitations.
00017 //
00018 // You should have received a copy of the GPL along with this
00019 // program. If not, go to http://www.gnu.org/licenses/gpl.html
00020 // or write to the Free Software Foundation, Inc.,
00021 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00022 //
00023 // END SONGBIRD GPL
00024 //
00025 */
00026 
00032 #include "nsISupports.idl"
00033 
00034 interface sbISQLBuilderCriterion;
00035 interface sbISQLBuilderCriterionIn;
00036 interface sbISQLSelectBuilder;
00037 
00046 [scriptable, uuid(c214b05b-0aa8-4bf9-aa0f-a1b1ff646539)]
00047 interface sbISQLBuilder : nsISupports
00048 {
00049   const unsigned long MATCH_EQUALS       = 0;
00050   const unsigned long MATCH_NOTEQUALS    = 1;
00051   const unsigned long MATCH_GREATER      = 2;
00052   const unsigned long MATCH_GREATEREQUAL = 3;
00053   const unsigned long MATCH_LESS         = 4;
00054   const unsigned long MATCH_LESSEQUAL    = 5;
00055   const unsigned long MATCH_LIKE         = 6;
00056   const unsigned long MATCH_NOTLIKE      = 7;
00057   const unsigned long MATCH_MATCH        = 8;
00058 
00062   attribute long limit;
00063 
00067   attribute boolean limitIsParameter;
00068 
00072   attribute long offset;
00073 
00077   attribute boolean offsetIsParameter;
00078 
00079   const unsigned long JOIN_INNER      = 0;
00080   const unsigned long JOIN_LEFT       = 1;
00081   const unsigned long JOIN_LEFT_OUTER = 2;
00082 
00094   void addJoin(in unsigned long aJoinType,
00095                in AString aJoinedTableName,
00096                in AString aJoinedTableAlias,
00097                in AString aJoinedColumnName,
00098                in AString aJoinToTableName,
00099                in AString aJoinToColumnName);
00100 
00119   void addJoinWithIndexHint(in unsigned long aJoinType,
00120                             in AString aJoinedTableName,
00121                             in AString aJoinedTableAlias,
00122                             in AString aJoinedColumnName,
00123                             in AString aJoinToTableName,
00124                             in AString aJoinToColumnName,
00125                             in boolean aRequiresFromTableIndexHint,
00126                             in boolean aRequiresToTableIndexHint);
00127 
00139   void addSubqueryJoin(in unsigned long aJoinType,
00140                        in sbISQLSelectBuilder aJoinedSubquery,
00141                        in AString aJoinedTableAlias,
00142                        in AString aJoinedColumnName,
00143                        in AString aJoinToTableName,
00144                        in AString aJoinToColumnName);
00145 
00154   void addJoinWithCriterion(in unsigned long aJoinType,
00155                             in AString aJoinedTableName,
00156                             in AString aJoinedTableAlias,
00157                             in sbISQLBuilderCriterion aCriterion);
00158 
00164   void addSubquery(in sbISQLSelectBuilder aSubquery,
00165                    in AString aAlias);
00166 
00170   void reset();
00171 
00176   AString toString();
00177 };
00178 
00183 [scriptable, uuid(7a35ea83-e75f-4299-935c-9a678e74c13f)]
00184 interface sbISQLWhereBuilder : sbISQLBuilder
00185 {
00190   void addCriterion(in sbISQLBuilderCriterion aCriterion);
00191 
00196   void removeCriterion(in sbISQLBuilderCriterion aCriterion);
00197 
00206   sbISQLBuilderCriterion createMatchCriterionString(in AString aTableName,
00207                                                     in AString aSrcColumnName,
00208                                                     in unsigned long aMatchType,
00209                                                     in AString aValue);
00210 
00211   sbISQLBuilderCriterion createMatchCriterionBetweenString(in AString aTableName,
00212                                                            in AString aSrcColumnName,
00213                                                            in AString aLeftValue,
00214                                                            in AString aRightValue);
00215 
00216   sbISQLBuilderCriterion createMatchCriterionNotBetweenString(in AString aTableName,
00217                                                               in AString aSrcColumnName,
00218                                                               in AString aLeftValue,
00219                                                               in AString aRightValue);
00220 
00229   sbISQLBuilderCriterion createMatchCriterionLong(in AString aTableName,
00230                                                   in AString aSrcColumnName,
00231                                                   in unsigned long aMatchType,
00232                                                   in long aValue);
00233 
00241   sbISQLBuilderCriterion createMatchCriterionNull(in AString aTableName,
00242                                                   in AString aSrcColumnName,
00243                                                   in unsigned long aMatchType);
00244 
00253   sbISQLBuilderCriterion createMatchCriterionTable(in AString aLeftTableName,
00254                                                    in AString aLeftColumnName,
00255                                                    in unsigned long aMatchType,
00256                                                    in AString aRightTableName,
00257                                                    in AString aRightColumnName);
00258 
00264   sbISQLBuilderCriterionIn createMatchCriterionIn(in AString aTableName,
00265                                                   in AString aSrcColumnName);
00266 
00273   sbISQLBuilderCriterion createMatchCriterionParameter(in AString aTableName,
00274                                                        in AString aSrcColumnName,
00275                                                        in unsigned long aMatchType);
00281   sbISQLBuilderCriterion createAndCriterion(in sbISQLBuilderCriterion aLeft,
00282                                             in sbISQLBuilderCriterion aRight);
00283 
00289   sbISQLBuilderCriterion createOrCriterion(in sbISQLBuilderCriterion aLeft,
00290                                            in sbISQLBuilderCriterion aRight);
00291 
00292 
00293 };
00294 
00299 [scriptable, uuid(b91ae93b-9c1e-427c-a751-5c0c19fcdbc3)]
00300 interface sbISQLSelectBuilder : sbISQLWhereBuilder
00301 {
00305   attribute AString baseTableName;
00306 
00310   attribute AString baseTableAlias;
00311 
00315   attribute boolean distinct;
00316 
00323   void addColumn(in AString aTableName,
00324                  in AString aColumnName);
00325 
00329   void clearColumns();
00330 
00337   void addOrder(in AString aTableName,
00338                 in AString aColumnName,
00339                 in boolean aAscending);
00340 
00345   void addRandomOrder();
00346 
00352   void addGroupBy(in AString aTableName,
00353                   in AString aColumnName);
00354 
00355 };
00356 
00361 [scriptable, uuid(8c584d54-2fa1-4965-8345-f1eda5a1e304)]
00362 interface sbISQLInsertBuilder : sbISQLBuilder
00363 {
00368   void addColumn(in AString aColumnName);
00369 
00374   void addValueString(in AString aValue);
00375 
00380   void addValueLong(in long aValue);
00381 
00385   void addValueNull();
00386 
00390   void addValueParameter();
00391 
00397   void addValueRaw(in AString aValue);
00398 
00402   attribute AString intoTableName;
00403 
00408   attribute sbISQLSelectBuilder select;
00409 };
00410 
00415 [scriptable, uuid(68991dbd-83f0-4df9-b3f6-89d0982ed491)]
00416 interface sbISQLUpdateBuilder : sbISQLWhereBuilder
00417 {
00421   attribute AString tableName;
00422 
00428   void addAssignmentString(in AString aColumnName,
00429                            in AString aValue);
00430 
00435   void addAssignmentParameter(in AString aColumnName);
00436 };
00437 
00442 [scriptable, uuid(73a18b36-2eee-429e-9cda-1f4428c3afb5)]
00443 interface sbISQLDeleteBuilder : sbISQLWhereBuilder
00444 {
00448   attribute AString tableName;
00449 };
00450 
00456 [scriptable, uuid(442c1d9d-4e8e-4aa1-9124-2f700b625a45)]
00457 interface sbISQLBuilderCriterion : nsISupports
00458 {
00459   [noscript] AString toString();
00460 };
00461 
00466 [scriptable, uuid(51992f09-7b9a-4a91-b708-b4551c25acf9)]
00467 interface sbISQLBuilderCriterionIn : sbISQLBuilderCriterion
00468 {
00473   void addString(in AString aValue);
00474 
00479   void addLong(in long aValue);
00480 
00485   void addSubquery(in sbISQLSelectBuilder aSubquery);
00486 
00490   void clear();
00491 };
00492 

Generated on Tue Mar 10 14:28:55 2009 for Songbird by  doxygen 1.5.2