diff --git a/services.xml b/services.xml
index f56a9eb..b8f59b0 100644
--- a/services.xml
+++ b/services.xml
@@ -99,5 +99,54 @@
components
SACIP
+
+ findStudents
+ busca estudantes no banco de dados
+ DBConnection
+ components
+ SACIP
+
+
+ editStudent
+ edita um estudante no banco de dados
+ DBConnection
+ components
+ SACIP
+
+
+ deleteStudent
+ remove um estudante do banco de dados
+ DBConnection
+ components
+ SACIP
+
+
+ createContent
+ registra um novo conteudo no banco de dados
+ DBConnection
+ components
+ SACIP
+
+
+ findContents
+ busca conteudos no banco de dados
+ DBConnection
+ components
+ SACIP
+
+
+ editContent
+ edita um conteudo no banco de dados
+ DBConnection
+ components
+ SACIP
+
+
+ deleteContent
+ remove um conteudo do banco de dados
+ DBConnection
+ components
+ SACIP
+
\ No newline at end of file
diff --git a/src/main/java/sacip/sti/agents/TrackingAgent.java b/src/main/java/sacip/sti/agents/TrackingAgent.java
index 410be4e..0ca65e9 100644
--- a/src/main/java/sacip/sti/agents/TrackingAgent.java
+++ b/src/main/java/sacip/sti/agents/TrackingAgent.java
@@ -11,7 +11,6 @@
import org.midas.as.agent.templates.Agent;
import org.midas.as.agent.templates.LifeCycleException;
import org.midas.as.agent.templates.ServiceException;
-import org.midas.as.manager.execution.ServiceWrapper;
public class TrackingAgent extends Agent implements MessageListener{
@@ -47,10 +46,10 @@ protected void lifeCycle() throws LifeCycleException, InterruptedException {
// {
// System.out.println(e.getMessage());
// }
- // while(alive)
- // {
- // Thread.sleep(2000);
- // }
+ while(alive)
+ {
+ Thread.sleep(2000);
+ }
}
@@ -59,10 +58,5 @@ public void boardChanged(Message msg) {
// TODO Auto-generated method stub
}
-
- public void portugolListener()
- {
-
- }
}
diff --git a/src/main/java/sacip/sti/components/DBConnection.java b/src/main/java/sacip/sti/components/DBConnection.java
index 6fe1ab3..6d93505 100644
--- a/src/main/java/sacip/sti/components/DBConnection.java
+++ b/src/main/java/sacip/sti/components/DBConnection.java
@@ -24,126 +24,65 @@ public DBConnection() {
@Override
public void provide(String service, Map in, List out) throws ServiceException {
- //TODO
- //FINALIZAR A CRIAÇÃO DOS SERVIÇOS AQUI E NO XML
- if (service.equals("createStudent"))
+ switch (service)
{
- try
- {
- String result = createUser(instanceStudent(in));
- out.add(result);
- }
- catch(Exception e)
- {
- out.add("FALHOU criação de estudante"+e);
- System.out.println(e);
- }
- }
- if (service.equals("findStudents")) {
- try
- {
- List users = getUsers(in);
- out.add(users);
- }
- catch(Exception e)
- {
- out.add("FALHOU busca de estudante"+e);
- System.out.println(e);
- }
- }
- if (service.equals("editStudent")) {
- try
- {
- editUser((String)in.get("name"), (String)in.get("attrName"), (String)in.get("newValue"));
- }
- catch(Exception e)
- {
- out.add("FALHOU edicao de estudante"+e);
- System.out.println(e);
- }
- }
- if (service.equals("deleteStudent")) {
- try
- {
- deleteUser((String) in.get("name"));
- }
- catch (Exception e)
- {
- out.add("FALHOU remoção de estudante"+e);
- System.out.println(e);
- }
- }
- if (service.equals("createContent"))
- {
- try
- {
- String result = createContent(instanceContent(in));
- out.add(result);
- }
- catch(Exception e)
- {
- out.add("FALHOU criação de conteudo"+e);
- System.out.println(e);
- }
- }
- if (service.equals("findContents")) {
- try
- {
- List Contents = getContents(in);
- out.add(Contents);
- }
- catch(Exception e)
- {
- out.add("FALHOU busca de conteudo"+e);
- System.out.println(e);
- }
- }
- if (service.equals("editContent")) {
- try
- {
- editContent((String)in.get("name"), (String)in.get("attrName"), (String)in.get("newValue"));
- }
- catch(Exception e)
- {
- out.add("FALHOU edicao de conteudo"+e);
- System.out.println(e);
- }
- }
- if (service.equals("deleteContent")) {
- try
- {
- deleteContent((String) in.get("name"));
- }
- catch (Exception e)
- {
- out.add("FALHOU remoção de conteudo"+e);
- System.out.println(e);
- }
+ case "createStudent":
+ out.add(createUser(instanceStudent(in)));
+
+ case "findStudents":
+ out.add(getUsers(in));
+
+ case "editStudent":
+ out.add(editUser((String)in.get("name"), (String)in.get("attrName"), (String)in.get("newValue")));
+
+ case "deleteStudent":
+ out.add(deleteUser((String) in.get("name")));
+
+ case "createContent":
+ out.add(createContent(instanceContent(in)));
+
+ case "findContent":
+ out.add(getContents(in));
+
+ case "editContent":
+ out.add(editContent((String)in.get("name"), (String)in.get("attrName"), (String)in.get("newValue")));
+
+ case "deleteContent":
+ out.add(deleteContent((String) in.get("name")));
+
}
}
private Student instanceStudent(Map in)
{
- return new Student((String)in.get("name"),
- (String)in.get("password"),
- (String)in.get("avatar"),
- (String)in.get("genero"),
- (int)in.get("idade"),
- (String)in.get("nivelEdu"),
- (List) in.get("preferencias"));
+ try {
+ return new Student((String)in.get("name"),
+ (String)in.get("password"),
+ (String)in.get("avatar"),
+ (String)in.get("genero"),
+ (int)in.get("idade"),
+ (String)in.get("nivelEdu"),
+ (List) in.get("preferencias"));
+ } catch (Exception e) {
+ return new Student();
+ }
}
private Content instanceContent(Map in)
{
- return new Content((String)in.get("name"),
- (String)in.get("topic"),
- ((Long)in.get("difficulty")).intValue(),
- (String)in.get("complexity"),
- (boolean)in.get("exercise"),
- (String)in.get("taxonomy"),
- (List) in.get("tags"),
- (String)in.get("link"));
+ try {
+ return new Content((String)in.get("name"),
+ (String)in.get("topic"),
+ ((Long)in.get("difficulty")).intValue(),
+ (String)in.get("complexity"),
+ (boolean)in.get("exercise"),
+ (String)in.get("taxonomy"),
+ (List) in.get("tags"),
+ (String)in.get("link"));
+ } catch (Exception e) {
+ return new Content();
+ }
}
// private void createConstraints() {
@@ -154,137 +93,188 @@ private Content instanceContent(Map in)
// }
public String createUser(Student student) {
- System.out.println("FAZENDO QUERY");
- var result = cypher.writequery("CREATE (u:USER {"
- + "name: $name,"
- + "password: $password,"
- + "avatar: $avatar,"
- + "genero: $genero,"
- + "nivelEdu: $nivelEdu,"
- + "idade: $idade,"
- + "preferencias: [$preferencias]"
- + "})",
- Map.of("name", student.getName(),
- "password", student.getPassword(),
- "avatar", student.getAvatar(),
- "genero", student.getGenero(),
- "nivelEdu", student.getNivelEducacional(),
- "idade", student.getIdade(),
- "preferencias", student.getPreferenciasAsString()));
- System.out.println("TERMINOU QUERY");
- return result.toString();
- }
-
- private List getUsers(Map attributes) {
- //Cria query necessária
- StringBuilder query = new StringBuilder("MATCH (n:USER {");
- for (Map.Entry entry : attributes.entrySet()) {
- query.append(entry.getKey()+": $"+entry.getKey());
- query.append(", ");
+ try
+ {
+ var result = cypher.writequery("CREATE (u:USER {"
+ + "name: $name,"
+ + "password: $password,"
+ + "avatar: $avatar,"
+ + "genero: $genero,"
+ + "nivelEdu: $nivelEdu,"
+ + "idade: $idade,"
+ + "preferencias: [$preferencias]"
+ + "})",
+ Map.of("name", student.getName(),
+ "password", student.getPassword(),
+ "avatar", student.getAvatar(),
+ "genero", student.getGenero(),
+ "nivelEdu", student.getNivelEducacional(),
+ "idade", student.getIdade(),
+ "preferencias", student.getPreferenciasAsString()));
+ return result.toString();
}
- query.delete(query.length()-2, query.length()-1);
- query.append("}) RETURN n");
-
- //realisa a busca
- var result = cypher.writequery(query.toString(), attributes);
- if(result.isEmpty())
+ catch (Exception e)
{
- return null;
+ return "FALHOU criação de estudante"+e;
}
+ }
- //Faz uma lista de estudantes encontrados
- List students = new ArrayList<>();
- for (Map map : result) {
- map = (Map) map.get("n");
- students.add(instanceStudent(map));
- }
- return students;
+ private Object getUsers(Map attributes) {
+ try
+ {
+ //Cria query necessária
+ StringBuilder query = new StringBuilder("MATCH (n:USER {");
+ for (Map.Entry entry : attributes.entrySet()) {
+ query.append(entry.getKey()+": $"+entry.getKey());
+ query.append(", ");
+ }
+ query.delete(query.length()-2, query.length()-1);
+ query.append("}) RETURN n");
+
+ //realisa a busca
+ var result = cypher.writequery(query.toString(), attributes);
+ if(result.isEmpty())
+ {
+ return null;
+ }
+
+ //Faz uma lista de estudantes encontrados
+ List students = new ArrayList<>();
+ for (Map map : result) {
+ map = (Map) map.get("n");
+ students.add(instanceStudent(map));
+ }
+ return students;
+ }
+ catch (Exception e)
+ {
+ return "FALHOU busca de estudante"+e;
+ }
}
private String editUser(String name, String atributeName, String newValue)
{
- var result = cypher.writequery("MATCH (n:USER { name: $name })"+
- "SET n.$atribute = $newValue"+
- "RETURN n.name, n.$atribute"
- , Map.of("name", name, "atribute", atributeName, "newValue", newValue));
- return result.toString();
+ try
+ {
+ var result = cypher.writequery("MATCH (n:USER { name: $name })"+
+ "SET n.$atribute = $newValue"+
+ "RETURN n.name, n.$atribute"
+ , Map.of("name", name, "atribute", atributeName, "newValue", newValue));
+ return result.toString();
+ }
+ catch (Exception e)
+ {
+ return "FALHOU edicao de estudante"+e;
+ }
}
private String deleteUser(String name)
{
- var result = cypher.writequery("MATCH (n:USER { name: $name })"+
- "DELETE n"
- , Map.of("name", name));
- return result.toString();
+ try
+ {
+ var result = cypher.writequery("MATCH (n:USER { name: $name })"+
+ "DELETE n"
+ , Map.of("name", name));
+ return result.toString();
+ }
+ catch (Exception e)
+ {
+ return "FALHOU remoção de estudante"+e;
+ }
}
private String createContent(Content content)
{
- var result = cypher.writequery("CREATE (c:CONTENT "
- +"{"
- +"name: $name,"
- +"topic: $topic,"
- +"difficulty: $difficulty,"
- +"complexity: $complexity,"
- +"exercise: $exercise,"
- +"taxonomy: $taxonomy,"
- +"tags: [$tags],"
- +"link: $link"
- +"})",
- Map.of("name", content.getName(),
- "topic", content.getTopic(),
- "difficulty", content.getDifficulty(),
- "complexity", content.getComplexity(),
- "exercise", content.getExercise(),
- "taxonomy", content.getTaxonomy(),
- "tags", content.getTagsAsString(),
- "link", content.getLink()
- ));
- return result.toString();
+ try
+ {
+ var result = cypher.writequery("CREATE (c:CONTENT "
+ +"{"
+ +"name: $name,"
+ +"topic: $topic,"
+ +"difficulty: $difficulty,"
+ +"complexity: $complexity,"
+ +"exercise: $exercise,"
+ +"taxonomy: $taxonomy,"
+ +"tags: [$tags],"
+ +"link: $link"
+ +"})",
+ Map.of("name", content.getName(),
+ "topic", content.getTopic(),
+ "difficulty", content.getDifficulty(),
+ "complexity", content.getComplexity(),
+ "exercise", content.getExercise(),
+ "taxonomy", content.getTaxonomy(),
+ "tags", content.getTagsAsString(),
+ "link", content.getLink()
+ ));
+ return result.toString();
+ }
+ catch (Exception e)
+ {
+ return "FALHOU criação de conteudo"+e;
+ }
}
- private List getContents(Map attributes)
+ private Object getContents(Map attributes)
{
- //Cria query necessária
- StringBuilder query = new StringBuilder("MATCH (n:CONTENT {");
- for (Map.Entry entry : attributes.entrySet()) {
- query.append(entry.getKey()+": $"+entry.getKey());
- query.append(", ");
- }
- query.delete(query.length()-2, query.length()-1);
- query.append("}) RETURN n");
-
- //realisa a busca
- var result = cypher.writequery(query.toString(), attributes);
- if(result.isEmpty())
- {
- return null;
+ try {
+ //Cria query necessária
+ StringBuilder query = new StringBuilder("MATCH (n:CONTENT {");
+ for (Map.Entry entry : attributes.entrySet()) {
+ query.append(entry.getKey()+": $"+entry.getKey());
+ query.append(", ");
+ }
+ query.delete(query.length()-2, query.length()-1);
+ query.append("}) RETURN n");
+
+ //realisa a busca
+ var result = cypher.writequery(query.toString(), attributes);
+ if(result.isEmpty())
+ {
+ return null;
+ }
+
+ //Faz uma lista de conteudos encontrados
+ List content = new ArrayList<>();
+ for (Map map : result) {
+ map = (Map) map.get("n");
+ content.add(instanceContent(map));
+ }
+ return content;
+ } catch (Exception e) {
+ return "FALHOU busca de conteudo"+e;
}
-
- //Faz uma lista de conteudos encontrados
- List content = new ArrayList<>();
- for (Map map : result) {
- map = (Map) map.get("n");
- content.add(instanceContent(map));
- }
- return content;
}
private String editContent(String name, String atributeName, String newValue)
{
- var result = cypher.writequery("MATCH (n:CONTENT { name: $name })"+
- "SET n.$atribute = $newValue"+
- "RETURN n.name, n.$atribute"
- , Map.of("name", name, "atribute", atributeName, "newValue", newValue));
- return result.toString();
+ try
+ {
+ var result = cypher.writequery("MATCH (n:CONTENT { name: $name })"+
+ "SET n.$atribute = $newValue"+
+ "RETURN n.name, n.$atribute"
+ , Map.of("name", name, "atribute", atributeName, "newValue", newValue));
+ return result.toString();
+ }
+ catch (Exception e)
+ {
+ return "FALHOU edicao de conteudo"+e;
+ }
}
private String deleteContent(String name)
{
- var result = cypher.writequery("MATCH (n:CONTENT { name: $name })"+
- "DELETE n"
- , Map.of("name", name));
- return result.toString();
+ try
+ {
+ var result = cypher.writequery("MATCH (n:CONTENT { name: $name })"+
+ "DELETE n"
+ , Map.of("name", name));
+ return result.toString();
+ }
+ catch (Exception e)
+ {
+ return "FALHOU remoção de conteudo"+e;
+ }
}
private void showNodes()