Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions topic0/AbstractFactory/ConnectionFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package abstractFactory;

import drivers.DriverConnection;
import drivers.MySQLDriverManager;
import drivers.SQLDriverManager;

public class ConnectionFactory extends ConnectionsAbstractFactory {
@Override
public DriverConnection getConnection(String SQL) {
if( SQL == null) {
return null;
}

if(SQL.equalsIgnoreCase("MySql")) {
return new MySQLDriverManager();

} else if(SQL.equalsIgnoreCase("SqlServer")) {
return new SQLDriverManager();
}

return null;

}
}
29 changes: 29 additions & 0 deletions topic0/AbstractFactory/ConnectionProducer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package abstractFactory;

import connections.Connection;
import drivers.MySQLDriverManager;
import drivers.SQLDriverManager;

public class ConnectionProducer {
private static Connection connection;

public static Connection getConnection(String choise, String dataBase, String user, String password) {
if( choise == null) {
connection = null;
}

if(choise.equalsIgnoreCase("MySql")) {
MySQLDriverManager mySql= new MySQLDriverManager();
connection = mySql.getConnection(dataBase, user, password);

} else if(choise.equalsIgnoreCase("SqlServer")) {
SQLDriverManager sqlServer = new SQLDriverManager();
connection = sqlServer.getConnection(dataBase, user, password);
} else {
throw new Exception("the sql is not supported in this version of the program." +
"Please try with Mysql or SqlServer");
}

return connection;
}
}
7 changes: 7 additions & 0 deletions topic0/AbstractFactory/ConnectionsAbstractFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package abstractFactory;

import drivers.DriverConnection;

public abstract class ConnectionsAbstractFactory {
abstract DriverConnection getConnection(String SQL);
}
9 changes: 9 additions & 0 deletions topic0/Builder/Builder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package builder;

import connections.DataBaseConnection;

public interface Builder {

public DataBaseConnection getConnection();

}
14 changes: 14 additions & 0 deletions topic0/Builder/Director.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package builder;

public class Director {
private Builder connectionBuilder = null;

public Director(Builder mealBuilder) {
this.connectionBuilder = mealBuilder;
}

public void constructConnection() {
connectionBuilder.getConnection();
}

}
19 changes: 19 additions & 0 deletions topic0/Builder/MySQLBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package builder;

import connections.DataBaseConnection;

public class MySQLBuilder implements Builder{

private DataBaseConnection myConnection;

public MySQLBuilder(String dataBase) {
myConnection.getInstance("MySql", dataBase , "sara", "myConnection");
}

@Override
public DataBaseConnection getConnection() {
return myConnection;
}


}
18 changes: 18 additions & 0 deletions topic0/Connections/Connection.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package connections;

public class Connection {

private static Boolean connected = false;
private String dataBase = "testingDataBase";
private String user = "sara";
private String password = "myConnection";

public Connection(String database, String user, String password) {
if(this.dataBase.equals(database) && this.user.equals(user) && this.password.equals(password) ) {
connected = true;
}else {
throw new Exception("You have an error in your connection. Please, try again later");
}
}

}
45 changes: 45 additions & 0 deletions topic0/Connections/DataBaseConnection.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package connections;

import abstractFactory.ConnectionProducer;

public class DataBaseConnection {

private Connection myConnection;
private static DataBaseConnection dataBaseConnection = null;

private DataBaseConnection(){
try {
myConnection = ConnectionProducer.getConnection("MySql","testingDataBase", "sara", "myConnection");
} catch (Exception e) {
e.printStackTrace();
}
}


public static DataBaseConnection getInstance() {
if(dataBaseConnection == null) {
dataBaseConnection = new DataBaseConnection();
}
return dataBaseConnection;
}

//Builder Patron methods
private DataBaseConnection(String odbc, String dataBase, String user, String password) {
try {
myConnection = ConnectionProducer.getConnection(odbc, dataBase, user, password);
}catch(Exception e) {
e.printStackTrace();}
}

public static DataBaseConnection getInstance(String odbc, String dataBase, String user, String password) {
if(dataBaseConnection == null) {
dataBaseConnection = new DataBaseConnection(odbc, dataBase, user, password);
}
return dataBaseConnection;
}

public Connection getConnection() {
return myConnection;
}

}
7 changes: 7 additions & 0 deletions topic0/Drivers/DriverConnection.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package drivers;

import connections.Connection;

public interface DriverConnection {
public Connection getConnection(String dataBase, String u, String p);
}
13 changes: 13 additions & 0 deletions topic0/Drivers/MySQLDriverManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package drivers;

import connections.Connection;

public class MySQLDriverManager implements DriverConnection{
public MySQLDriverManager() {
}

public Connection getConnection(String dataBase, String user, String password) {
return new Connection(dataBase, user, password);
}

}
14 changes: 14 additions & 0 deletions topic0/Drivers/SQLDriverManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package drivers;

import connections.Connection;

public class SQLDriverManager implements DriverConnection{

public SQLDriverManager() {
}

public Connection getConnection(String dataBase, String user, String password) {
return new Connection(dataBase, user, password);
}

}
13 changes: 13 additions & 0 deletions topic0/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

public class Main {

public static void main(String[] args) {
Proxy aConnection = new Proxy();
if(aConnection.mySqlConnection().get)
System.out.print("i'm functioning");
else
System.out.print("I failed");

}

}
32 changes: 32 additions & 0 deletions topic0/Proxy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import builder.Director;
import builder.MySQLBuilder;
import connections.DataBaseConnection;

public class Proxy {
Director myConnectionDirector = null;

public Proxy() {}

/** This method return true if the connection was done
* or false if there was any error.
* */
public void mySqlConnection(){
try {
if(myConnectionDirector == null) {
MySQLBuilder mysql = new MySQLBuilder("testingDataBase");
this.myConnectionDirector = new Director(mysql);
this.myConnectionDirector.constructConnection();
}else{
throw new Exception("We are sorry, something happened during the connection");
}

}catch(Exception e) {
e.printStackTrace();
}

}

public void setMyConnectionDirector(Director myConnectionDirector) {
this.myConnectionDirector = myConnectionDirector;
}
}