From 054f4aa518f0dcd7df44c1c0728c2f298640c23e Mon Sep 17 00:00:00 2001
From: Glenn Van Lint <glenn.vanlint@is4u.be>
Date: Thu, 23 May 2013 23:52:14 +0000
Subject: [PATCH] Added documentation.
---
opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JoinConnectionFactory.java | 121 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 121 insertions(+), 0 deletions(-)
diff --git a/opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JoinConnectionFactory.java b/opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JoinConnectionFactory.java
new file mode 100644
index 0000000..5e72886
--- /dev/null
+++ b/opendj3/opendj-virtual/src/main/java/org/forgerock/opendj/virtual/JoinConnectionFactory.java
@@ -0,0 +1,121 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the Common Development and
+ * Distribution License (the License). You may not use this file except in compliance with the
+ * License.
+ *
+ * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
+ * specific language governing permission and limitations under the License.
+ *
+ * When distributing Covered Software, include this CDDL Header Notice in each file and include
+ * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
+ * Header, with the fields enclosed by brackets [] replaced by your own identifying
+ * information: "Portions Copyright [year] [name of copyright owner]".
+ *
+ * CDDL HEADER END
+ *
+ * Copyright 2013 ForgeRock AS.
+ * Portions Copyright 2013 IS4U.
+ */
+
+package org.forgerock.opendj.virtual;
+
+import java.io.IOException;
+import java.sql.SQLException;
+
+import org.forgerock.opendj.ldap.Connection;
+import org.forgerock.opendj.ldap.ConnectionFactory;
+import org.forgerock.opendj.ldap.ErrorResultException;
+import org.forgerock.opendj.ldap.FutureResult;
+import org.forgerock.opendj.ldap.LDAPConnectionFactory;
+import org.forgerock.opendj.ldap.ResultHandler;
+
+/**
+ * A factory class which combines an LDAPConnectionFactory and a JDBCConnectionFactory
+ * which can be used to obtain unified connections.
+ */
+public final class JoinConnectionFactory implements ConnectionFactory
+{
+ private final LDAPConnectionFactory ldapFactory;
+ private final JDBCConnectionFactory jdbcFactory;
+ private JoinConnection join;
+
+ /**
+ * Creates a new joined connection factory which can be used to create unified
+ * connections to both back-ends.
+ *
+ * @param ldapfactory
+ * The LDAPConnectionFactory which provides connections to the
+ * Directory Server.
+ * @param jdbcfactory
+ * The JDBCConnectionFactory which provides connections to the
+ * Database Server.
+ * @throws ErrorResultException
+ * If the connection request failed for some reason.
+ * @throws SQLException
+ * If a database access error occurs.
+ * @throws IOException
+ * If an I/O exception error occurs.
+ */
+ public JoinConnectionFactory(final LDAPConnectionFactory ldapfactory, final JDBCConnectionFactory jdbcfactory) throws ErrorResultException, SQLException, IOException
+ {
+ this.ldapFactory = ldapfactory;
+ this.jdbcFactory = jdbcfactory;
+ }
+
+ /**
+ * Returns the subordinate LDAPConnectionFactory.
+ *
+ * @return The subordinate LDAPConnectionFactory.
+ */
+ public LDAPConnectionFactory getLDAPFactory()
+ {
+ return ldapFactory;
+ }
+
+ /**
+ * Returns the subordinate JDBCConnectionFactory.
+ *
+ * @return The subordinate JDBCConnectionFactory.
+ */
+ public JDBCConnectionFactory getJDBCFactory()
+ {
+ return jdbcFactory;
+ }
+
+ /**
+ * Returns a unified connection to the directory and database back-ends associated
+ * with this connection factory. The connection returned by this method can be used
+ * immediately.
+ *
+ * @return A connection to the directory and database back-ends associated
+ * with this connection factory
+ * @throws ErrorResultException
+ * If the connection request failed for some reason.
+ * @throws SQLException
+ * If a database access error occurs.
+ * @throws IOException
+ * If an I/O exception error occurs.
+ */
+ @Override
+ public Connection getConnection() throws ErrorResultException
+ {
+ if(join == null){
+ try{
+ join = new JoinConnection(ldapFactory, jdbcFactory);
+ }catch (SQLException e){
+ System.out.println(e.toString());
+ }catch (IOException e){
+ System.out.println(e.toString());
+ }
+ }
+ return join;
+ }
+
+ @Override
+ public FutureResult<Connection> getConnectionAsync(
+ ResultHandler<? super Connection> handler) {
+ return null;
+ }
+}
--
Gitblit v1.10.0