Skip to content

Commit 81e9237

Browse files
committed
todo: fix test cases
1 parent 4d314ae commit 81e9237

File tree

43 files changed

+2437
-2146
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2437
-2146
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.tickaroo.tikxml.annotation;
2+
3+
import java.lang.annotation.Documented;
4+
import java.lang.annotation.ElementType;
5+
import java.lang.annotation.Retention;
6+
import java.lang.annotation.RetentionPolicy;
7+
import java.lang.annotation.Target;
8+
9+
/**
10+
* This annotation is used to resolve polymorphism by scanning for a certain xml tag
11+
*
12+
* @author Hannes Dorfmann
13+
* @since 1.0
14+
*/
15+
@Documented
16+
@Target(ElementType.TYPE)
17+
@Retention(RetentionPolicy.RUNTIME)
18+
public @interface GenericAdapter {
19+
}

annotationprocessortesting-kt/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/autovalue/Writer.kt

+2
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.element.polymorphism.autovalue
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter
2122
import com.tickaroo.tikxml.annotation.PropertyElement
2223

2324
/**
2425
* @author Hannes Dorfmann
2526
*/
27+
@GenericAdapter
2628
interface Writer {
2729
@PropertyElement
2830
fun name(): String

annotationprocessortesting-kt/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/autovalue/Book.kt

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package com.tickaroo.tikxml.annotationprocessing.elementlist.autovalue
2020

2121
import com.google.auto.value.AutoValue
2222
import com.tickaroo.tikxml.annotation.Attribute
23+
import com.tickaroo.tikxml.annotation.GenericAdapter
2324
import com.tickaroo.tikxml.annotation.PropertyElement
2425
import com.tickaroo.tikxml.annotation.Xml
2526
import com.tickaroo.tikxml.annotationprocessing.DateConverter
@@ -30,6 +31,7 @@ import java.util.Date
3031
*/
3132
@Xml
3233
@AutoValue
34+
@GenericAdapter
3335
abstract class Book {
3436

3537
@Attribute

annotationprocessortesting-kt/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/Person.kt

+3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.elementlist.polymorphism
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter
22+
2123
/**
2224
* @author Hannes Dorfmann
2325
*/
26+
@GenericAdapter
2427
interface Person

annotationprocessortesting-kt/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/autovalue/Person.kt

+3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.elementlist.polymorphism.autovalue
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter
22+
2123
/**
2224
* @author Hannes Dorfmann
2325
*/
26+
@GenericAdapter
2427
interface Person

annotationprocessortesting-kt/src/main/java/com/tickaroo/tikxml/annotationprocessing/textcontent/autovalue/Day.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.tickaroo.tikxml.annotationprocessing.textcontent.autovalue
22

33
import com.google.auto.value.AutoValue
4+
import com.tickaroo.tikxml.annotation.GenericAdapter
45
import com.tickaroo.tikxml.annotation.TextContent
56
import com.tickaroo.tikxml.annotation.Xml
67

@@ -9,6 +10,7 @@ import com.tickaroo.tikxml.annotation.Xml
910
*/
1011
@Xml
1112
@AutoValue
13+
@GenericAdapter
1214
abstract class Day {
1315
@TextContent
1416
abstract fun name(): String

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/Paper.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.tickaroo.tikxml.annotation.Element;
2222
import com.tickaroo.tikxml.annotation.ElementNameMatcher;
2323
import com.tickaroo.tikxml.annotation.Xml;
24+
import java.util.Objects;
2425

2526
/**
2627
* @author Hannes Dorfmann
@@ -41,7 +42,7 @@ public class Paper {
4142

4243
Paper paper = (Paper) o;
4344

44-
return writer != null ? writer.equals(paper.writer) : paper.writer == null;
45+
return Objects.equals(writer, paper.writer);
4546
}
4647

4748
@Override public int hashCode() {

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/Writer.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,16 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.element.polymorphism;
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter;
2122
import com.tickaroo.tikxml.annotation.PropertyElement;
2223
import com.tickaroo.tikxml.annotation.Xml;
24+
import java.util.Objects;
2325

2426
/**
2527
* @author Hannes Dorfmann
2628
*/
2729
@Xml
30+
@GenericAdapter
2831
public abstract class Writer {
2932
@PropertyElement String name;
3033

@@ -34,7 +37,7 @@ public abstract class Writer {
3437

3538
Writer writer = (Writer) o;
3639

37-
return name != null ? name.equals(writer.name) : writer.name == null;
40+
return Objects.equals(name, writer.name);
3841
}
3942

4043
@Override public int hashCode() {

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/autovalue/Writer.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.element.polymorphism.autovalue;
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter;
2122
import com.tickaroo.tikxml.annotation.PropertyElement;
2223

2324
/**
2425
* @author Hannes Dorfmann
2526
*/
27+
@GenericAdapter
2628
public interface Writer {
27-
@PropertyElement public abstract String name();
29+
@PropertyElement String name();
2830
}

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/constructor/PaperConstructor.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import com.tickaroo.tikxml.annotation.ElementNameMatcher;
2323
import com.tickaroo.tikxml.annotation.Xml;
2424

25+
import java.util.Objects;
26+
2527
/**
2628
* @author Hannes Dorfmann
2729
*/
@@ -50,7 +52,7 @@ public WriterConstructor getWriter() {
5052

5153
PaperConstructor that = (PaperConstructor) o;
5254

53-
return writer != null ? writer.equals(that.writer) : that.writer == null;
55+
return Objects.equals(writer, that.writer);
5456
}
5557

5658
@Override public int hashCode() {

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/element/polymorphism/constructor/WriterConstructor.java

+2
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.element.polymorphism.constructor;
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter;
2122
import com.tickaroo.tikxml.annotation.PropertyElement;
2223
import com.tickaroo.tikxml.annotation.Xml;
2324

2425
/**
2526
* @author Hannes Dorfmann
2627
*/
2728
@Xml
29+
@GenericAdapter
2830
public abstract class WriterConstructor {
2931

3032
private String name;

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/autovalue/Book.java

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import com.google.auto.value.AutoValue;
2222
import com.tickaroo.tikxml.annotation.Attribute;
23+
import com.tickaroo.tikxml.annotation.GenericAdapter;
2324
import com.tickaroo.tikxml.annotation.PropertyElement;
2425
import com.tickaroo.tikxml.annotation.Xml;
2526
import com.tickaroo.tikxml.annotationprocessing.DateConverter;
@@ -30,6 +31,7 @@
3031
*/
3132
@Xml
3233
@AutoValue
34+
@GenericAdapter
3335
public abstract class Book {
3436

3537
@Attribute public abstract int id();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.tickaroo.tikxml.annotationprocessing.elementlist.generic;
2+
3+
import com.tickaroo.tikxml.annotation.Attribute;
4+
import com.tickaroo.tikxml.annotation.Xml;
5+
import java.util.Objects;
6+
7+
@Xml
8+
public class Boss implements Person2 {
9+
10+
@Attribute String firstName;
11+
@Attribute String lastName;
12+
13+
@Override public boolean equals(Object o) {
14+
if (this == o) return true;
15+
if (!(o instanceof Boss)) return false;
16+
17+
Boss boss = (Boss) o;
18+
19+
if (!Objects.equals(firstName, boss.firstName)) return false;
20+
return Objects.equals(lastName, boss.lastName);
21+
}
22+
23+
@Override public int hashCode() {
24+
int result = firstName != null ? firstName.hashCode() : 0;
25+
result = 31 * result + (lastName != null ? lastName.hashCode() : 0);
26+
return result;
27+
}
28+
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.tickaroo.tikxml.annotationprocessing.elementlist.generic;
2+
3+
import com.tickaroo.tikxml.annotation.Element;
4+
import com.tickaroo.tikxml.annotation.ElementNameMatcher;
5+
import com.tickaroo.tikxml.annotation.PropertyElement;
6+
import com.tickaroo.tikxml.annotation.Xml;
7+
import java.util.List;
8+
import java.util.Objects;
9+
10+
@Xml
11+
public class Company {
12+
13+
@PropertyElement String name;
14+
@Element(typesByElement = {
15+
@ElementNameMatcher(name = "bosser", type = Boss.class)
16+
}) List<Person> persons;
17+
18+
@Override public boolean equals(Object o) {
19+
if (this == o) return true;
20+
if (!(o instanceof Company)) return false;
21+
22+
Company company = (Company) o;
23+
24+
if (!Objects.equals(name, company.name)) return false;
25+
return Objects.equals(persons, company.persons);
26+
}
27+
28+
@Override public int hashCode() {
29+
int result = name != null ? name.hashCode() : 0;
30+
result = 31 * result + (persons != null ? persons.hashCode() : 0);
31+
return result;
32+
}
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.tickaroo.tikxml.annotationprocessing.elementlist.generic;
2+
3+
import com.tickaroo.tikxml.annotation.PropertyElement;
4+
import com.tickaroo.tikxml.annotation.Xml;
5+
import java.util.Objects;
6+
7+
@Xml
8+
public class Employee implements Person {
9+
10+
@PropertyElement String name;
11+
12+
@Override public boolean equals(Object o) {
13+
if (this == o) return true;
14+
if (!(o instanceof Employee)) return false;
15+
16+
Employee employee = (Employee) o;
17+
return Objects.equals(name, employee.name);
18+
}
19+
20+
@Override public int hashCode() {
21+
return name != null ? name.hashCode() : 0;
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.tickaroo.tikxml.annotationprocessing.elementlist.generic;
2+
3+
import com.tickaroo.tikxml.annotation.GenericAdapter;
4+
5+
@GenericAdapter
6+
public interface Person {
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.tickaroo.tikxml.annotationprocessing.elementlist.generic;
2+
3+
import com.tickaroo.tikxml.annotation.GenericAdapter;
4+
5+
@GenericAdapter
6+
public interface Person2 extends Person {
7+
}

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/Boss.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import com.tickaroo.tikxml.annotation.Attribute;
2222
import com.tickaroo.tikxml.annotation.Xml;
23+
import java.util.Objects;
2324

2425
/**
2526
* @author Hannes Dorfmann
@@ -35,9 +36,8 @@ public class Boss implements Person {
3536

3637
Boss boss = (Boss) o;
3738

38-
if (firstName != null ? !firstName.equals(boss.firstName) : boss.firstName != null)
39-
return false;
40-
return lastName != null ? lastName.equals(boss.lastName) : boss.lastName == null;
39+
if (!Objects.equals(firstName, boss.firstName)) return false;
40+
return Objects.equals(lastName, boss.lastName);
4141
}
4242

4343
@Override public int hashCode() {

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/Company.java

+4-8
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
package com.tickaroo.tikxml.annotationprocessing.elementlist.polymorphism;
2020

2121
import com.tickaroo.tikxml.annotation.Element;
22-
import com.tickaroo.tikxml.annotation.ElementNameMatcher;
2322
import com.tickaroo.tikxml.annotation.PropertyElement;
2423
import com.tickaroo.tikxml.annotation.Xml;
2524
import java.util.List;
25+
import java.util.Objects;
2626

2727
/**
2828
* @author Hannes Dorfmann
@@ -32,20 +32,16 @@ public class Company {
3232

3333
@PropertyElement String name;
3434

35-
@Element(typesByElement = {
36-
@ElementNameMatcher(type = Boss.class),
37-
@ElementNameMatcher(type = Employee.class),
38-
})
39-
List<Person> persons;
35+
@Element List<Person> persons;
4036

4137
@Override public boolean equals(Object o) {
4238
if (this == o) return true;
4339
if (!(o instanceof Company)) return false;
4440

4541
Company company = (Company) o;
4642

47-
if (name != null ? !name.equals(company.name) : company.name != null) return false;
48-
return persons != null ? persons.equals(company.persons) : company.persons == null;
43+
if (!Objects.equals(name, company.name)) return false;
44+
return Objects.equals(persons, company.persons);
4945
}
5046

5147
@Override public int hashCode() {

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/Employee.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import com.tickaroo.tikxml.annotation.PropertyElement;
2222
import com.tickaroo.tikxml.annotation.Xml;
23+
import java.util.Objects;
2324

2425
/**
2526
* @author Hannes Dorfmann
@@ -35,7 +36,7 @@ public class Employee implements Person {
3536

3637
Employee employee = (Employee) o;
3738

38-
return name != null ? name.equals(employee.name) : employee.name == null;
39+
return Objects.equals(name, employee.name);
3940
}
4041

4142
@Override public int hashCode() {

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/Person.java

+3
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.elementlist.polymorphism;
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter;
22+
2123
/**
2224
* @author Hannes Dorfmann
2325
*/
26+
@GenericAdapter
2427
public interface Person {
2528
}

annotationprocessortesting/src/main/java/com/tickaroo/tikxml/annotationprocessing/elementlist/polymorphism/autovalue/Person.java

+3
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@
1818

1919
package com.tickaroo.tikxml.annotationprocessing.elementlist.polymorphism.autovalue;
2020

21+
import com.tickaroo.tikxml.annotation.GenericAdapter;
22+
2123
/**
2224
* @author Hannes Dorfmann
2325
*/
26+
@GenericAdapter
2427
public interface Person {
2528
}

0 commit comments

Comments
 (0)