PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/IncrementalMaintenanceOfRDFViews/src/br/ufc/mcc/arida/rdb2rdfmb/model/DCA.java

https://github.com/luiseufrasio/rdb2rdfMB
Java | 123 lines | 96 code | 20 blank | 7 comment | 22 complexity | bad2c6d55fd56edb0ec87dc6b817e14b MD5 | raw file
  1. package br.ufc.mcc.arida.rdb2rdfmb.model;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class DCA extends PCA {
  5. private DataProperty dProperty;
  6. private List<String> attributes = new ArrayList<String>();
  7. @Override
  8. public String toString() {
  9. String strDCA = dProperty + " ≡ " + relationName + " / ";
  10. if (fks.size() > 0) {
  11. strDCA += "[";
  12. int i = 0;
  13. for (String fk : fks) {
  14. if (i++ > 0) {
  15. strDCA += ", " + fk;
  16. } else {
  17. strDCA += fk;
  18. }
  19. }
  20. strDCA += "] / ";
  21. }
  22. if (attributes.size() > 1) {
  23. strDCA += "{";
  24. int i = 0;
  25. for (String a : attributes) {
  26. if (i++ > 0) {
  27. strDCA += ", " + a;
  28. } else {
  29. strDCA += a;
  30. }
  31. }
  32. strDCA += "}";
  33. } else if (attributes.size() == 1) {
  34. String a = attributes.get(0);
  35. strDCA += a;
  36. } else {
  37. strDCA += "null";
  38. }
  39. return strDCA;
  40. }
  41. @Override
  42. public CA build(String toString, MappingConfiguration mc) {
  43. DCA ca = new DCA();
  44. /*
  45. * Formats:
  46. * 1. prefix : dProperty ≡ relationName / attribute
  47. * 2. prefix : dProperty ≡ relationName / {attList}
  48. * 3. prefix : dProperty ≡ relationName / [FksList] / attribute
  49. * 4. prefix : dProperty ≡ relationName / [FksList] / {attList}
  50. */
  51. String v1[] = toString.split(":");
  52. String v2[] = v1[1].split(" ");
  53. ca.setdProperty(new DataProperty(v1[0].trim(), v2[1]));
  54. ca.setRelationName(v2[3]);
  55. List<String> atts = new ArrayList<>();
  56. ca.setAttributes(atts);
  57. int i = 5;
  58. if (v2[i].indexOf('[') != -1) {
  59. List<String> fksList = new ArrayList<>();
  60. ca.setFks(fksList);
  61. v2[i] = v2[i].substring(1);
  62. while (v2[i].indexOf("]") == -1) {
  63. v2[i] = v2[i].replaceAll(",", "");
  64. fksList.add(v2[i]);
  65. i++;
  66. }
  67. v2[i] = v2[i].substring(0, v2[i].length() - 1);
  68. fksList.add(v2[i]);
  69. }
  70. if ("/".equals(v2[i])) {
  71. i++;
  72. }
  73. if (v2[i].indexOf('{') != -1) {
  74. v2[i] = v2[i].substring(1);
  75. while (v2[i].indexOf("}") == -1) {
  76. v2[i] = v2[i].replaceAll(",", "");
  77. atts.add(v2[i]);
  78. i++;
  79. }
  80. v2[i] = v2[i].substring(0, v2[i].length() - 1);
  81. atts.add(v2[i]);
  82. } else {
  83. atts.add(v2[i]);
  84. }
  85. return ca;
  86. }
  87. public DataProperty getdProperty() {
  88. return dProperty;
  89. }
  90. public void setdProperty(DataProperty dProperty) {
  91. this.dProperty = dProperty;
  92. }
  93. public List<String> getAttributes() {
  94. return attributes;
  95. }
  96. public void setAttributes(List<String> attributes) {
  97. this.attributes = attributes;
  98. }
  99. @Override
  100. public String key() {
  101. return dProperty.getName();
  102. }
  103. }