isac-java/src/java/isac/bridge/xml/DataTypesCompanion.java
author Walther Neuper <walther.neuper@jku.at>
Fri, 26 Mar 2021 10:45:05 +0100
changeset 5239 b4e3883d7b66
parent 5229 6bf0e95981e3
permissions -rw-r--r--
reset mathematics-engine to Isabelle2015

note: for this version libisabelle was available,
which connects front-end (Java) and back-end (Isabelle/ML)
wneuper@4772
     1
/* 
wneuper@4772
     2
 * @author Walther Neuper
wneuper@4772
     3
 * Copyright (c) due to license terms
wneuper@4772
     4
 * Created on Aug 16, 2015
wneuper@4772
     5
 * Institute for Softwaretechnology, Graz University of Technology, Austria.
wneuper@4772
     6
 */
wneuper@4772
     7
wneuper@4772
     8
package isac.bridge.xml;
wneuper@4772
     9
wneuper@4772
    10
import isac.bridge.xml.DataTypes;
wneuper@4810
    11
import isac.util.tactics.TermTactic;
wneuper@4772
    12
import isac.util.tactics.Rewrite;
wneuper@4772
    13
import isac.util.tactics.RewriteInst;
wneuper@4772
    14
import isac.util.tactics.RewriteSet;
wneuper@4772
    15
import isac.util.tactics.RewriteSetInst;
wneuper@4772
    16
import isac.util.tactics.SimpleTactic;
wneuper@4772
    17
import isac.util.tactics.StringListTactic;
wneuper@4772
    18
import isac.util.tactics.SubProblemTactic;
wneuper@4772
    19
import isac.util.tactics.Tactic;
walther@5239
    20
import edu.tum.cs.isabelle.api.XML;
wneuper@4772
    21
wneuper@4772
    22
/**
wneuper@4772
    23
 * Trials to cope with type conversions between Java and Scala.
wneuper@4772
    24
 */
wneuper@4772
    25
public class DataTypesCompanion {
wneuper@4772
    26
	
wneuper@4772
    27
	// in Scala no way was found for accepting the type conversions:
wneuper@4772
    28
	//
wneuper@4772
    29
	//  def xml_of_Tactic(tac: Tactic): isabelle.XML.Tree = tac.getClass.getSimpleName match {
wneuper@4772
    30
	//    case "SubProblemTactic" => xml_of_SubProblemTactic((SubProblemTactic)tac)
wneuper@4772
    31
	//    //Substitute  TODO clarify
wneuper@4772
    32
	//    case "Rewrite" => xml_of_Rewrite((Rewrite)tac)
wneuper@4772
    33
	//    case "RewriteInst" => xml_of_RewriteInst((RewriteInst)tac)
wneuper@4772
    34
	//    case "RewriteSet" => xml_of_RewriteSet((RewriteSet)tac)
wneuper@4772
    35
	//    case "RewriteSetInst" => xml_of_RewriteSetInst((RewriteSetInst)tac)
wneuper@4810
    36
	//    case "TermTactic" => xml_of_TermTactic((TermTactic)tac)
wneuper@4772
    37
	//    case "SimpleTactic" => xml_of_SimpleTactic((SimpleTactic)tac)
wneuper@4772
    38
	//    case "StringListTactic" => xml_of_StringListTactic((StringListTactic)tac)
wneuper@4772
    39
	//    case str => 
wneuper@4772
    40
	//      throw new IllegalArgumentException("xml_of_Tactic: case \"" + str + "\" not covered")
wneuper@4772
    41
	//  }
wneuper@4772
    42
	// ERROR "This method must return a result of type XML.tree".
wneuper@4772
    43
	//
wneuper@4772
    44
	public static XML.Tree xml_of_Tactic (Tactic tac) {
wneuper@4772
    45
		XML.Tree return_val = null;
wneuper@4772
    46
	  if (tac instanceof SubProblemTactic) 
wneuper@4772
    47
		return (XML.Tree)DataTypes.xml_of_SubProblemTactic((SubProblemTactic)tac);
wneuper@4772
    48
	  //else if (tac instanceof Substitute) 
wneuper@4772
    49
	  //  return_val =  isabelle.XML.Tree)DataTypes.xml_of_Substitute((Substitute)tac);
wneuper@4772
    50
	  else if ((tac instanceof Rewrite))
wneuper@4772
    51
		  return_val =  (XML.Tree)DataTypes.xml_of_Rewrite((Rewrite)tac);
wneuper@4772
    52
	  else if (tac instanceof RewriteInst)
wneuper@4772
    53
		  return_val =  (XML.Tree)DataTypes.xml_of_RewriteInst((RewriteInst)tac);
wneuper@4772
    54
	  else if (tac instanceof RewriteSet)
wneuper@4772
    55
		  return_val =  (XML.Tree)DataTypes.xml_of_RewriteSet((RewriteSet)tac);
wneuper@4772
    56
	  else if (tac instanceof RewriteSetInst) 
wneuper@4772
    57
		  return_val =  (XML.Tree)DataTypes.xml_of_RewriteSetInst((RewriteSetInst)tac);
wneuper@4810
    58
	  else if (tac instanceof TermTactic) 
wneuper@4810
    59
		  return_val =  (XML.Tree)DataTypes.xml_of_TermTactic((TermTactic)tac);
wneuper@4772
    60
	  else if (tac instanceof SimpleTactic) 
wneuper@4772
    61
		  return_val =  (XML.Tree)DataTypes.xml_of_SimpleTactic((SimpleTactic)tac);
wneuper@4772
    62
	  else if (tac instanceof StringListTactic) 
wneuper@4772
    63
		  return_val =  (XML.Tree)DataTypes.xml_of_StringListTactic((StringListTactic)tac);
wneuper@4772
    64
	return return_val;
wneuper@4772
    65
	}
wneuper@4772
    66
	
wneuper@4772
    67
wneuper@4772
    68
}