1 /* 2 * The contents of this file are subject to the terms 3 * of the Common Development and Distribution License 4 * (the "License"). You may not use this file except 5 * in compliance with the License. 6 * 7 * You can obtain a copy of the license at 8 * glassfish/bootstrap/legal/CDDLv1.0.txt or 9 * https://glassfish.dev.java.net/public/CDDLv1.0.html. 10 * See the License for the specific language governing 11 * permissions and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL 14 * HEADER in each file and include the License file at 15 * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable, 16 * add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your 18 * own identifying information: Portions Copyright [yyyy] 19 * [name of copyright owner] 20 */ 21 // Copyright (c) 1998, 2005, Oracle. All rights reserved. 22 package oracle.toplink.essentials.internal.sequencing; 23 24 import oracle.toplink.essentials.internal.sessions.AbstractSession; 25 import oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl; 26 import oracle.toplink.essentials.threetier.ClientSession; 27 28 /** 29 * SequencingFactory is private to TopLink. 30 * It instantiates sequencing classes for sessions. 31 * It allows sequencing classes to be incupsulated in 32 * this package. 33 * 34 * @see ClientSessionSequencing 35 * @see RemoteConnectionSequencing 36 * @see SessionBrokerSequencing 37 * @see SequencingManager 38 * 39 */ 40 public class SequencingFactory { 41 42 /** 43 * INTERNAL: 44 * Takes a potential owner - a Session, returns Sequencing object. 45 * Note that before creating a Sequencing object there is a check performed 46 * to determine whether the object could be created. 47 */ 48 public static Sequencing createSequencing(AbstractSession session) { 49 Sequencing sequencing = null; 50 if (session.isClientSession()) { 51 ClientSession cs = (ClientSession)session; 52 if (ClientSessionSequencing.sequencingServerExists(cs)) { 53 sequencing = new ClientSessionSequencing(cs); 54 } 55 } 56 return sequencing; 57 } 58 59 /** 60 * INTERNAL: 61 * Takes a potential owner - a DatabaseSession, returns SequencingHome object. 62 * Only DatabaseSession and ServerSession should be passed (not SessionBroker). 63 */ 64 public static SequencingHome createSequencingHome(DatabaseSessionImpl ownerSession) { 65 SequencingHome home = null; 66 if (!ownerSession.isBroker()) { 67 home = new SequencingManager(ownerSession); 68 } 69 return home; 70 } 71 } 72