changelog.java

来自「Semantic Web Ontology Editor」· Java 代码 · 共 2,028 行 · 第 1/5 页

JAVA
2,028
字号
				}
			}
		}
		else
		if (change instanceof RemoveImport) {
			
			RemoveImport add = (RemoveImport) change;
			OWLOntology ont = add.getOntology();
			OWLOntology impOnt = add.getImportOntology();
			
			switch (function) {
			
			case CHANGE_DESCRIPTION :			
				changeDesc += renderChange(
						"REMOVE IMPORT",
						change,
						"", null,
						"Ontology:", ont,
						"Imported Ontology:", impOnt,
						uris
						);
				return changeDesc;
			
			case CHANGE_RDFXML :
				List argList = new ArrayList();
				argList.add(ont);
				argList.add(impOnt);
				return changeRenderer.addtoOWLAPIOntology("RemoveImport", argList);
				
			case CHANGE_INVERSE :
				return new AddImport(ont, impOnt, null);
			
			case CHANGE_ALIGN :
				// align a change with an existing ontology from swoopModel
				try {
					OWLOntology eimpOnt = swoopModel.getOntology(impOnt.getURI());
					return new RemoveImport(alignOnt, eimpOnt, null);
				}
				catch (OWLException ex) {
					ex.printStackTrace();
				}
			} 
		}
		else
		if (change instanceof AddEntity) {
			
			AddEntity add = (AddEntity) change;
			OWLOntology ont = add.getOntology();
			OWLEntity entity = add.getEntity();
			String entityType = "ENTITY";
			if (entity instanceof OWLClass) entityType = "CLASS";
			else if (entity instanceof OWLDataProperty) entityType = "DATATYPE_PROPERTY";
			else if (entity instanceof OWLObjectProperty) entityType = "OBJECT_PROPERTY";
			else if (entity instanceof OWLIndividual) entityType = "INDIVIDUAL";
			
			switch (function) {
			
			case CHANGE_DESCRIPTION :
				changeDesc += renderChange(
						"ADD " + entityType,
						change,
						"", null,
						"Ontology:", ont,
						"Entity:", entity,
						uris
						);
				return changeDesc;
				
			case CHANGE_RDFXML :
				List argList = new ArrayList();
				argList.add(ont);
				argList.add(entity);
				return changeRenderer.addtoOWLAPIOntology("Add"+entityType, argList);
				
			case CHANGE_INVERSE :
				return new RemoveEntity(ont, entity, null);
				
			case CHANGE_ALIGN :
				// align a change with an existing ontology from swoopModel
				try {
					return new AddEntity(alignOnt, swoopModel.getEntity(alignOnt, entity.getURI(), true), null);
				}
				catch (OWLException ex) {
					ex.printStackTrace();
				}
			} 
		}
		else
		if (change instanceof RemoveEntity) {
			
			RemoveEntity rem = (RemoveEntity) change;
			OWLOntology ont = rem.getOntology();
			OWLEntity entity = rem.getEntity();
			String entityType = "ENTITY";
			if (entity instanceof OWLClass) entityType = "CLASS";
			else if (entity instanceof OWLDataProperty) entityType = "DATATYPE_PROPERTY";
			else if (entity instanceof OWLObjectProperty) entityType = "OBJECT_PROPERTY";
			else if (entity instanceof OWLIndividual) entityType = "INDIVIDUAL";
			
			switch (function) {
			
			case CHANGE_DESCRIPTION :
				changeDesc += renderChange(
						"REMOVE " + entityType,
						change,
						"", null,
						"Ontology:", ont,
						"Entity:", entity,
						uris
						);
				return changeDesc;
			
			case CHANGE_RDFXML :
				List argList = new ArrayList();
				argList.add(ont);
				argList.add(entity);
				return changeRenderer.addtoOWLAPIOntology("Remove"+entityType, argList);
				
			case CHANGE_INVERSE :
				return new AddEntity(ont, entity, null);
			
			case CHANGE_ALIGN :
				// align a change with an existing ontology from swoopModel
				try {
					return new RemoveEntity(alignOnt, swoopModel.getEntity(alignOnt, entity.getURI(), true), null);
				}
				catch (OWLException ex) {
					ex.printStackTrace();
				}
			} 
			
		}
		else
		if (change instanceof AddClassAxiom) {
			
			AddClassAxiom add = (AddClassAxiom) change;
			OWLClassAxiom axiom = add.getAxiom();
			
			if (axiom instanceof OWLDisjointClassesAxiom) {
				OWLDisjointClassesAxiom dis = (OWLDisjointClassesAxiom) axiom;
				
				switch (function) {
				
				case CHANGE_DESCRIPTION :
					try {
						// add uri of ontology to URI list
						uris.add(change.getOntology().getURI());
						
						List clas = new ArrayList();
						clas.addAll(dis.getDisjointClasses());
						changeDesc += renderChange(
							"ADD DISJOINT CLASSES",
							change,
							clas,
							uris
							);
					}
					catch (OWLException e) {
						e.printStackTrace();
					}
					return changeDesc;
				
				case CHANGE_RDFXML :
					List argList = new ArrayList();
					argList.add(add.getOntology()); // always add ontology as first argument
					try {
							argList.addAll(dis.getDisjointClasses());
						} catch (OWLException e1) {
							e1.printStackTrace();
						}
					return changeRenderer.addtoOWLAPIOntology("AddDisjointClasses", argList);
					
				case CHANGE_INVERSE :
					return new RemoveClassAxiom(change.getOntology(), dis, null);
				
				case CHANGE_ALIGN :
					// align a change with an existing ontology from swoopModel
					try {
						Set clas = dis.getDisjointClasses();
						Set exClas = new HashSet();
						for (Iterator iter = clas.iterator(); iter.hasNext();) {
							OWLDescription desc = (OWLDescription) iter.next();
							if (desc instanceof OWLClass) {
								OWLClass cla = (OWLClass) swoopModel.getEntity(alignOnt, ((OWLClass) desc).getURI(), true);
								exClas.add(cla);
							}
							else exClas.add(desc);
						}
						OWLDisjointClassesAxiom exDis = alignOnt.getOWLDataFactory().getOWLDisjointClassesAxiom(exClas); 
						return new AddClassAxiom(alignOnt, exDis, null);
					}
					catch (OWLException ex) {
						ex.printStackTrace();
					}
				}
			}
			else if (axiom instanceof OWLSubClassAxiom) {
				OWLSubClassAxiom subAxiom = (OWLSubClassAxiom) axiom;
				
				switch (function) {
				
				case CHANGE_DESCRIPTION :
					try {
						// add uri of ontology to URI list
						uris.add(change.getOntology().getURI());
						
						List clas = new ArrayList();
						clas.add(subAxiom.getSubClass());
						clas.add(subAxiom.getSuperClass());
						changeDesc += renderChange(
							"ADD SUB CLASS",
							change,
							clas,
							uris
							);
					}
					catch (OWLException e) {
						e.printStackTrace();
					}
					return changeDesc;
				
				case CHANGE_RDFXML :
					List argList = new ArrayList();
					argList.add(add.getOntology()); // always add ontology as first argument
					try {
							argList.add(subAxiom.getSubClass());
							argList.add(subAxiom.getSuperClass());
						} catch (OWLException e1) {
							e1.printStackTrace();
						}
					return changeRenderer.addtoOWLAPIOntology("AddSubClassAxiom", argList);
					
				case CHANGE_INVERSE :
					return new RemoveClassAxiom(change.getOntology(), subAxiom, null);
				
				case CHANGE_ALIGN :
					// align a change with an existing ontology from swoopModel
					try {
						OWLDescription sub = subAxiom.getSubClass();
						OWLDescription sup = subAxiom.getSuperClass();
						
						if (sub instanceof OWLClass) {
							sub = (OWLClass) swoopModel.getEntity(alignOnt, ((OWLClass) sub).getURI(), true);
						}
						if (sup instanceof OWLClass) {
							sup = (OWLClass) swoopModel.getEntity(alignOnt, ((OWLClass) sup).getURI(), true);
						}
						
						OWLSubClassAxiom exSub = alignOnt.getOWLDataFactory().getOWLSubClassAxiom(sub, sup); 
						return new AddClassAxiom(alignOnt, exSub, null);
					}
					catch (OWLException ex) {
						ex.printStackTrace();
					}
				}
			}
		}
		else
		if (change instanceof RemoveClassAxiom) {
			
			RemoveClassAxiom add = (RemoveClassAxiom) change;
			OWLClassAxiom axiom = add.getAxiom();
			
			if (axiom instanceof OWLDisjointClassesAxiom) {
				OWLDisjointClassesAxiom dis = (OWLDisjointClassesAxiom) axiom;
				
				switch (function) {
				
				case CHANGE_DESCRIPTION :
					try {
						// add uri of ontology to URI list
						uris.add(change.getOntology().getURI());
						
						List clas = new ArrayList();
						clas.addAll(dis.getDisjointClasses());
						changeDesc += renderChange(
							"REMOVE DISJOINT CLASSES",
							change,
							clas,
							uris
							);
					}
					catch (OWLException e) {
						e.printStackTrace();
					}
					return changeDesc;
				
				case CHANGE_RDFXML :
					List argList = new ArrayList();
					argList.add(add.getOntology());
					try {
							argList.addAll(dis.getDisjointClasses());
						} catch (OWLException e1) {
							e1.printStackTrace();
						}
					return changeRenderer.addtoOWLAPIOntology("RemoveDisjointClasses", argList);
					
				case CHANGE_INVERSE :
					return new AddClassAxiom(change.getOntology(), dis, null);
				
				case CHANGE_ALIGN :
					// align a change with an existing ontology from swoopModel
					try {
						Set clas = dis.getDisjointClasses();
						Set exClas = new HashSet();
						for (Iterator iter = clas.iterator(); iter.hasNext();) {
							OWLDescription desc = (OWLDescription) iter.next();
							if (desc instanceof OWLClass) {
								OWLClass cla = (OWLClass) swoopModel.getEntity(alignOnt, ((OWLClass) desc).getURI(), true);
								exClas.add(cla);
							}
							else exClas.add(desc);
						}
						OWLDisjointClassesAxiom exDis = alignOnt.getOWLDataFactory().getOWLDisjointClassesAxiom(exClas); 
						return new RemoveClassAxiom(alignOnt, exDis, null);
					}
					catch (OWLException ex) {
						ex.printStackTrace();
					}
				}
			}
			else if (axiom instanceof OWLSubClassAxiom) {
				OWLSubClassAxiom subAxiom = (OWLSubClassAxiom) axiom;
				
				switch (function) {
				
				case CHANGE_DESCRIPTION :
					try {
						// add uri of ontology to URI list
						uris.add(change.getOntology().getURI());
						
						List clas = new ArrayList();
						clas.add(subAxiom.getSubClass());
						clas.add(subAxiom.getSuperClass());
						changeDesc += renderChange(
							"REMOVE SUB CLASS",
							change,
							clas,
							uris
							);
					}
					catch (OWLException e) {
						e.printStackTrace();
					}
					return changeDesc;
				
				case CHANGE_RDFXML :
					List argList = new ArrayList();
					argList.add(add.getOntology()); // always add ontology as first argument
					try {
							argList.add(subAxiom.getSubClass());
							argList.add(subAxiom.getSuperClass());
						} catch (OWLException e1) {
							e1.printStackTrace();
						}
					return changeRenderer.addtoOWLAPIOntology("RemoveSubClassAxiom", argList);
					
				case CHANGE_INVERSE :
					return new RemoveClassAxiom(change.getOntology(), subAxiom, null);
				
				case CHANGE_ALIGN :
					// align a change with an existing ontology from swoopModel
					try {
						OWLDescription sub = subAxiom.getSubClass();
						OWLDescription sup = subAxiom.getSuperClass();
						
						if (sub instanceof OWLClass) {
							sub = (OWLClass) swoopModel.getEntity(alignOnt, ((OWLClass) sub).getURI(), true);
						}
						if (sup instanceof OWLClass) {
							sup = (OWLClass) swoopModel.getEntity(alignOnt, ((OWLClass) sup).getURI(), true);
						}
						
						OWLSubClassAxiom exSub = alignOnt.getOWLDataFactory().getOWLSubClassAxiom(sub, sup); 
						return new AddClassAxiom(alignOnt, exSub, null);
					}
					catch (OWLException ex) {
						ex.printStackTrace();
					}
				}
			}
		}
		else
		if (change instanceof AddEquivalentClass) {

			AddEquivalentClass add = (AddEquivalentClass) change;
			OWLOntology ont = add.getOntology();
			OWLClass cla = add.getOWLClass();
			OWLDescription desc = add.getDescription();
			
			switch (function) {
			
			case CHANGE_DESCRIPTION :
				changeDesc += renderChange(
						"ADD EQUIVALENT CLASS",
						change,
						"Ontology:", ont,
						"Class:", cla,
						"Equivalent Class:", desc,
						uris
						);
				return changeDesc;
			
			case CHANGE_RDFXML :
				List argList = new ArrayList();
				argList.add(ont);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?