// This file is automatically generated by DemeterJ. EqualVisitor { {{ private java.util.Stack history = new java.util.Stack(); public EqualVisitor(Object obj) { history.push(obj); } }} before Main {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Schema, parts_list, Parts_List {{ if (is_equal) { Schema obj = (Schema) history.peek(); Object temp3 = obj.get_parts_list(); if(temp3==null) { is_equal = false; return; } history.push(temp3); } }} after -> Schema, parts_list, Parts_List {{ if (is_equal) history.pop(); }} before Schema {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp1 = host.get_string(); Object temp2 = ((Schema) obj).get_string(); if(temp1 == null && temp2 == null) {} else if(temp1 == null || temp2 == null || !temp1.equals(temp2)) { is_equal = false; return; } }} before Parts {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Types {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ComplexType, name, Name {{ if (is_equal) { ComplexType obj = (ComplexType) history.peek(); Object temp4 = obj.get_name(); if(temp4==null) { is_equal = false; return; } history.push(temp4); } }} after -> ComplexType, name, Name {{ if (is_equal) history.pop(); }} before -> ComplexType, sequence, Sequence {{ if (is_equal) { ComplexType obj = (ComplexType) history.peek(); Object temp5 = obj.get_sequence(); if(temp5==null) { is_equal = false; return; } history.push(temp5); } }} after -> ComplexType, sequence, Sequence {{ if (is_equal) history.pop(); }} before -> ComplexType, attribute, Attribute {{ if (is_equal) { ComplexType obj = (ComplexType) history.peek(); Object temp6 = obj.get_attribute(); if(temp6==null) { is_equal = false; return; } history.push(temp6); } }} after -> ComplexType, attribute, Attribute {{ if (is_equal) history.pop(); }} before ComplexType {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Attribute, name, Name {{ if (is_equal) { Attribute obj = (Attribute) history.peek(); Object temp7 = obj.get_name(); if(temp7==null) { is_equal = false; return; } history.push(temp7); } }} after -> Attribute, name, Name {{ if (is_equal) history.pop(); }} before -> Attribute, type, Type {{ if (is_equal) { Attribute obj = (Attribute) history.peek(); Object temp8 = obj.get_type(); if(temp8==null) { is_equal = false; return; } history.push(temp8); } }} after -> Attribute, type, Type {{ if (is_equal) history.pop(); }} before -> Attribute, endpart, EndPart {{ if (is_equal) { Attribute obj = (Attribute) history.peek(); Object temp9 = obj.get_endpart(); if(temp9==null) { is_equal = false; return; } history.push(temp9); } }} after -> Attribute, endpart, EndPart {{ if (is_equal) history.pop(); }} before Attribute {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Sequence, parts_list, Parts_List {{ if (is_equal) { Sequence obj = (Sequence) history.peek(); Object temp10 = obj.get_parts_list(); if(temp10==null) { is_equal = false; return; } history.push(temp10); } }} after -> Sequence, parts_list, Parts_List {{ if (is_equal) history.pop(); }} before Sequence {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Element, nameref, NameRef {{ if (is_equal) { Element obj = (Element) history.peek(); Object temp11 = obj.get_nameref(); if(temp11==null) { is_equal = false; return; } history.push(temp11); } }} after -> Element, nameref, NameRef {{ if (is_equal) history.pop(); }} before -> Element, elementparts_list, ElementParts_List {{ if (is_equal) { Element obj = (Element) history.peek(); Object temp12 = obj.get_elementparts_list(); if(temp12==null) { is_equal = false; return; } history.push(temp12); } }} after -> Element, elementparts_list, ElementParts_List {{ if (is_equal) history.pop(); }} before -> Element, elementendparts, ElementEndParts {{ if (is_equal) { Element obj = (Element) history.peek(); Object temp13 = obj.get_elementendparts(); if(temp13==null) { is_equal = false; return; } history.push(temp13); } }} after -> Element, elementendparts, ElementEndParts {{ if (is_equal) history.pop(); }} before Element {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before NameRef {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ElementParts {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before ElementEndParts {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> SimpleElementEnd, endpart, EndPart {{ if (is_equal) { SimpleElementEnd obj = (SimpleElementEnd) history.peek(); Object temp14 = obj.get_endpart(); if(temp14==null) { is_equal = false; return; } history.push(temp14); } }} after -> SimpleElementEnd, endpart, EndPart {{ if (is_equal) history.pop(); }} before SimpleElementEnd {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ComplexElementEnd, types_list, Types_List {{ if (is_equal) { ComplexElementEnd obj = (ComplexElementEnd) history.peek(); Object temp15 = obj.get_types_list(); if(temp15==null) { is_equal = false; return; } history.push(temp15); } }} after -> ComplexElementEnd, types_list, Types_List {{ if (is_equal) history.pop(); }} before ComplexElementEnd {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> SimpleType, name, Name {{ if (is_equal) { SimpleType obj = (SimpleType) history.peek(); Object temp16 = obj.get_name(); if(temp16==null) { is_equal = false; return; } history.push(temp16); } }} after -> SimpleType, name, Name {{ if (is_equal) history.pop(); }} before -> SimpleType, restriction, Restriction {{ if (is_equal) { SimpleType obj = (SimpleType) history.peek(); Object temp17 = obj.get_restriction(); if(temp17==null) { is_equal = false; return; } history.push(temp17); } }} after -> SimpleType, restriction, Restriction {{ if (is_equal) history.pop(); }} before SimpleType {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Restriction, base, Base {{ if (is_equal) { Restriction obj = (Restriction) history.peek(); Object temp18 = obj.get_base(); if(temp18==null) { is_equal = false; return; } history.push(temp18); } }} after -> Restriction, base, Base {{ if (is_equal) history.pop(); }} before -> Restriction, simpleparts_list, SimpleParts_List {{ if (is_equal) { Restriction obj = (Restriction) history.peek(); Object temp19 = obj.get_simpleparts_list(); if(temp19==null) { is_equal = false; return; } history.push(temp19); } }} after -> Restriction, simpleparts_list, SimpleParts_List {{ if (is_equal) history.pop(); }} before Restriction {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before SimpleParts {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Name {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp20 = host.get_string(); Object temp21 = ((Name) obj).get_string(); if(temp20 == null && temp21 == null) {} else if(temp20 == null || temp21 == null || !temp20.equals(temp21)) { is_equal = false; return; } }} before Ref {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp22 = host.get_string(); Object temp23 = ((Ref) obj).get_string(); if(temp22 == null && temp23 == null) {} else if(temp22 == null || temp23 == null || !temp22.equals(temp23)) { is_equal = false; return; } }} before Base {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp24 = host.get_string(); Object temp25 = ((Base) obj).get_string(); if(temp24 == null && temp25 == null) {} else if(temp24 == null || temp25 == null || !temp24.equals(temp25)) { is_equal = false; return; } }} before Type {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp26 = host.get_string(); Object temp27 = ((Type) obj).get_string(); if(temp26 == null && temp27 == null) {} else if(temp26 == null || temp27 == null || !temp26.equals(temp27)) { is_equal = false; return; } }} before MinOccurs {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp28 = host.get_string(); Object temp29 = ((MinOccurs) obj).get_string(); if(temp28 == null && temp29 == null) {} else if(temp28 == null || temp29 == null || !temp28.equals(temp29)) { is_equal = false; return; } }} before MaxOccurs {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp30 = host.get_string(); Object temp31 = ((MaxOccurs) obj).get_string(); if(temp30 == null && temp31 == null) {} else if(temp30 == null || temp31 == null || !temp30.equals(temp31)) { is_equal = false; return; } }} before -> MinExclusive, value, Value {{ if (is_equal) { MinExclusive obj = (MinExclusive) history.peek(); Object temp32 = obj.get_value(); if(temp32==null) { is_equal = false; return; } history.push(temp32); } }} after -> MinExclusive, value, Value {{ if (is_equal) history.pop(); }} before -> MinExclusive, endpart, EndPart {{ if (is_equal) { MinExclusive obj = (MinExclusive) history.peek(); Object temp33 = obj.get_endpart(); if(temp33==null) { is_equal = false; return; } history.push(temp33); } }} after -> MinExclusive, endpart, EndPart {{ if (is_equal) history.pop(); }} before MinExclusive {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> MaxExclusive, value, Value {{ if (is_equal) { MaxExclusive obj = (MaxExclusive) history.peek(); Object temp34 = obj.get_value(); if(temp34==null) { is_equal = false; return; } history.push(temp34); } }} after -> MaxExclusive, value, Value {{ if (is_equal) history.pop(); }} before -> MaxExclusive, endpart, EndPart {{ if (is_equal) { MaxExclusive obj = (MaxExclusive) history.peek(); Object temp35 = obj.get_endpart(); if(temp35==null) { is_equal = false; return; } history.push(temp35); } }} after -> MaxExclusive, endpart, EndPart {{ if (is_equal) history.pop(); }} before MaxExclusive {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> MinInclusive, value, Value {{ if (is_equal) { MinInclusive obj = (MinInclusive) history.peek(); Object temp36 = obj.get_value(); if(temp36==null) { is_equal = false; return; } history.push(temp36); } }} after -> MinInclusive, value, Value {{ if (is_equal) history.pop(); }} before -> MinInclusive, endpart, EndPart {{ if (is_equal) { MinInclusive obj = (MinInclusive) history.peek(); Object temp37 = obj.get_endpart(); if(temp37==null) { is_equal = false; return; } history.push(temp37); } }} after -> MinInclusive, endpart, EndPart {{ if (is_equal) history.pop(); }} before MinInclusive {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> MaxInclusive, value, Value {{ if (is_equal) { MaxInclusive obj = (MaxInclusive) history.peek(); Object temp38 = obj.get_value(); if(temp38==null) { is_equal = false; return; } history.push(temp38); } }} after -> MaxInclusive, value, Value {{ if (is_equal) history.pop(); }} before -> MaxInclusive, endpart, EndPart {{ if (is_equal) { MaxInclusive obj = (MaxInclusive) history.peek(); Object temp39 = obj.get_endpart(); if(temp39==null) { is_equal = false; return; } history.push(temp39); } }} after -> MaxInclusive, endpart, EndPart {{ if (is_equal) history.pop(); }} before MaxInclusive {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before Value {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp40 = host.get_string(); Object temp41 = ((Value) obj).get_string(); if(temp40 == null && temp41 == null) {} else if(temp40 == null || temp41 == null || !temp40.equals(temp41)) { is_equal = false; return; } }} before EndPart {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before PrintVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_indent() == ((PrintVisitor) obj).get_indent(); is_equal = is_equal && host.get_needSpace() == ((PrintVisitor) obj).get_needSpace(); }} before CopyVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; Object temp42 = host.get_copy(); Object temp43 = ((CopyVisitor) obj).get_copy(); if(temp42 == null && temp43 == null) {} else if(temp42 == null || temp43 == null || !temp42.equals(temp43)) { is_equal = false; return; } }} before SubgraphVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_is_equal() == ((SubgraphVisitor) obj).get_is_equal(); }} before EqualVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_is_equal() == ((EqualVisitor) obj).get_is_equal(); }} before DisplayVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_indent() == ((DisplayVisitor) obj).get_indent(); }} before TraceVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; is_equal = is_equal && host.get_indent() == ((TraceVisitor) obj).get_indent(); }} before UniversalVisitor {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Parts_List, first, Nonempty_Parts_List {{ if (is_equal) { Parts_List obj = (Parts_List) history.peek(); Object temp44 = obj.get_first(); if(temp44==null) { is_equal = false; return; } history.push(temp44); } }} after -> Parts_List, first, Nonempty_Parts_List {{ if (is_equal) history.pop(); }} before Parts_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> ElementParts_List, first, Nonempty_ElementParts_List {{ if (is_equal) { ElementParts_List obj = (ElementParts_List) history.peek(); Object temp45 = obj.get_first(); if(temp45==null) { is_equal = false; return; } history.push(temp45); } }} after -> ElementParts_List, first, Nonempty_ElementParts_List {{ if (is_equal) history.pop(); }} before ElementParts_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Types_List, first, Nonempty_Types_List {{ if (is_equal) { Types_List obj = (Types_List) history.peek(); Object temp46 = obj.get_first(); if(temp46==null) { is_equal = false; return; } history.push(temp46); } }} after -> Types_List, first, Nonempty_Types_List {{ if (is_equal) history.pop(); }} before Types_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> SimpleParts_List, first, Nonempty_SimpleParts_List {{ if (is_equal) { SimpleParts_List obj = (SimpleParts_List) history.peek(); Object temp47 = obj.get_first(); if(temp47==null) { is_equal = false; return; } history.push(temp47); } }} after -> SimpleParts_List, first, Nonempty_SimpleParts_List {{ if (is_equal) history.pop(); }} before SimpleParts_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Parts_List, it, Parts {{ if (is_equal) { Nonempty_Parts_List obj = (Nonempty_Parts_List) history.peek(); Object temp48 = obj.get_it(); if(temp48==null) { is_equal = false; return; } history.push(temp48); } }} after -> Nonempty_Parts_List, it, Parts {{ if (is_equal) history.pop(); }} before -> Nonempty_Parts_List, next, Nonempty_Parts_List {{ if (is_equal) { Nonempty_Parts_List obj = (Nonempty_Parts_List) history.peek(); Object temp49 = obj.get_next(); if(temp49==null) { is_equal = false; return; } history.push(temp49); } }} after -> Nonempty_Parts_List, next, Nonempty_Parts_List {{ if (is_equal) history.pop(); }} before Nonempty_Parts_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_ElementParts_List, it, ElementParts {{ if (is_equal) { Nonempty_ElementParts_List obj = (Nonempty_ElementParts_List) history.peek(); Object temp50 = obj.get_it(); if(temp50==null) { is_equal = false; return; } history.push(temp50); } }} after -> Nonempty_ElementParts_List, it, ElementParts {{ if (is_equal) history.pop(); }} before -> Nonempty_ElementParts_List, next, Nonempty_ElementParts_List {{ if (is_equal) { Nonempty_ElementParts_List obj = (Nonempty_ElementParts_List) history.peek(); Object temp51 = obj.get_next(); if(temp51==null) { is_equal = false; return; } history.push(temp51); } }} after -> Nonempty_ElementParts_List, next, Nonempty_ElementParts_List {{ if (is_equal) history.pop(); }} before Nonempty_ElementParts_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_Types_List, it, Types {{ if (is_equal) { Nonempty_Types_List obj = (Nonempty_Types_List) history.peek(); Object temp52 = obj.get_it(); if(temp52==null) { is_equal = false; return; } history.push(temp52); } }} after -> Nonempty_Types_List, it, Types {{ if (is_equal) history.pop(); }} before -> Nonempty_Types_List, next, Nonempty_Types_List {{ if (is_equal) { Nonempty_Types_List obj = (Nonempty_Types_List) history.peek(); Object temp53 = obj.get_next(); if(temp53==null) { is_equal = false; return; } history.push(temp53); } }} after -> Nonempty_Types_List, next, Nonempty_Types_List {{ if (is_equal) history.pop(); }} before Nonempty_Types_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} before -> Nonempty_SimpleParts_List, it, SimpleParts {{ if (is_equal) { Nonempty_SimpleParts_List obj = (Nonempty_SimpleParts_List) history.peek(); Object temp54 = obj.get_it(); if(temp54==null) { is_equal = false; return; } history.push(temp54); } }} after -> Nonempty_SimpleParts_List, it, SimpleParts {{ if (is_equal) history.pop(); }} before -> Nonempty_SimpleParts_List, next, Nonempty_SimpleParts_List {{ if (is_equal) { Nonempty_SimpleParts_List obj = (Nonempty_SimpleParts_List) history.peek(); Object temp55 = obj.get_next(); if(temp55==null) { is_equal = false; return; } history.push(temp55); } }} after -> Nonempty_SimpleParts_List, next, Nonempty_SimpleParts_List {{ if (is_equal) history.pop(); }} before Nonempty_SimpleParts_List {{ Object obj = history.peek(); is_equal = is_equal && obj.getClass().equals(host.getClass()); if(!is_equal) return; }} return boolean {{ is_equal }} }