Skip to content

Commit 5a6f8d2

Browse files
author
ishwardas
authored
Merge pull request #1 from eugenp/master
update with eugenp
2 parents 026e5de + 463f525 commit 5a6f8d2

File tree

132 files changed

+3415
-783
lines changed

Some content is hidden

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

132 files changed

+3415
-783
lines changed

autovalue-tutorial/pom.xml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.baeldung</groupId>
5+
<artifactId>autovalue-tutorial</artifactId>
6+
<version>1.0</version>
7+
<name>AutoValue</name>
8+
<build>
9+
<plugins>
10+
<plugin>
11+
<groupId>org.apache.maven.plugins</groupId>
12+
<artifactId>maven-compiler-plugin</artifactId>
13+
<version>3.3</version>
14+
<configuration>
15+
<source>7</source>
16+
<target>7</target>
17+
</configuration>
18+
</plugin>
19+
</plugins>
20+
</build>
21+
<dependencies>
22+
<dependency>
23+
<groupId>com.google.auto.value</groupId>
24+
<artifactId>auto-value</artifactId>
25+
<version>1.2</version>
26+
</dependency>
27+
28+
<dependency>
29+
<groupId>junit</groupId>
30+
<artifactId>junit</artifactId>
31+
<version>4.3</version>
32+
<scope>test</scope>
33+
</dependency>
34+
35+
</dependencies>
36+
</project>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.baeldung.autovalue;
2+
3+
import com.google.auto.value.AutoValue;
4+
5+
@AutoValue
6+
public abstract class AutoValueMoney {
7+
public abstract String getCurrency();
8+
9+
public abstract long getAmount();
10+
11+
public static AutoValueMoney create(String currency, long amount) {
12+
return new AutoValue_AutoValueMoney(currency, amount);
13+
14+
}
15+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.baeldung.autovalue;
2+
3+
import com.google.auto.value.AutoValue;
4+
5+
@AutoValue
6+
public abstract class AutoValueMoneyWithBuilder {
7+
public abstract String getCurrency();
8+
9+
public abstract long getAmount();
10+
11+
static Builder builder() {
12+
return new AutoValue_AutoValueMoneyWithBuilder.Builder();
13+
}
14+
15+
@AutoValue.Builder
16+
abstract static class Builder {
17+
abstract Builder setCurrency(String currency);
18+
19+
abstract Builder setAmount(long amount);
20+
21+
abstract AutoValueMoneyWithBuilder build();
22+
}
23+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.baeldung.autovalue;
2+
3+
import java.util.Objects;
4+
5+
public final class Foo {
6+
private final String text;
7+
private final int number;
8+
9+
public Foo(String text, int number) {
10+
this.text = text;
11+
this.number = number;
12+
}
13+
14+
public String getText() {
15+
return text;
16+
}
17+
18+
public int getNumber() {
19+
return number;
20+
}
21+
22+
@Override
23+
public int hashCode() {
24+
return Objects.hash(text, number);
25+
}
26+
27+
@Override
28+
public String toString() {
29+
return "Foo [text=" + text + ", number=" + number + "]";
30+
}
31+
32+
@Override
33+
public boolean equals(Object obj) {
34+
if (this == obj)
35+
return true;
36+
if (obj == null)
37+
return false;
38+
if (getClass() != obj.getClass())
39+
return false;
40+
Foo other = (Foo) obj;
41+
if (number != other.number)
42+
return false;
43+
if (text == null) {
44+
if (other.text != null)
45+
return false;
46+
} else if (!text.equals(other.text))
47+
return false;
48+
return true;
49+
}
50+
51+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.baeldung.autovalue;
2+
public final class ImmutableMoney {
3+
private final long amount;
4+
private final String currency;
5+
public ImmutableMoney(long amount, String currency) {
6+
this.amount = amount;
7+
this.currency = currency;
8+
}
9+
@Override
10+
public int hashCode() {
11+
final int prime = 31;
12+
int result = 1;
13+
result = prime * result + (int) (amount ^ (amount >>> 32));
14+
result = prime * result
15+
+ ((currency == null) ? 0 : currency.hashCode());
16+
return result;
17+
}
18+
19+
@Override
20+
public boolean equals(Object obj) {
21+
if (this == obj)
22+
return true;
23+
if (obj == null)
24+
return false;
25+
if (getClass() != obj.getClass())
26+
return false;
27+
ImmutableMoney other = (ImmutableMoney) obj;
28+
if (amount != other.amount)
29+
return false;
30+
if (currency == null) {
31+
if (other.currency != null)
32+
return false;
33+
} else if (!currency.equals(other.currency))
34+
return false;
35+
return true;
36+
}
37+
38+
public long getAmount() {
39+
return amount;
40+
}
41+
42+
public String getCurrency() {
43+
return currency;
44+
}
45+
46+
@Override
47+
public String toString() {
48+
return "ImmutableMoney [amount=" + amount + ", currency=" + currency
49+
+ "]";
50+
}
51+
52+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.baeldung.autovalue;
2+
3+
public class MutableMoney {
4+
@Override
5+
public String toString() {
6+
return "MutableMoney [amount=" + amount + ", currency=" + currency
7+
+ "]";
8+
}
9+
10+
public long getAmount() {
11+
return amount;
12+
}
13+
14+
public void setAmount(long amount) {
15+
this.amount = amount;
16+
}
17+
18+
public String getCurrency() {
19+
return currency;
20+
}
21+
22+
public void setCurrency(String currency) {
23+
this.currency = currency;
24+
}
25+
26+
private long amount;
27+
private String currency;
28+
29+
public MutableMoney(long amount, String currency) {
30+
super();
31+
this.amount = amount;
32+
this.currency = currency;
33+
}
34+
35+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.baeldung.autovalue;
2+
3+
import static org.junit.Assert.*;
4+
5+
import org.junit.Test;
6+
7+
public class MoneyTest {
8+
@Test
9+
public void givenTwoSameValueMoneyObjects_whenEqualityTestFails_thenCorrect() {
10+
MutableMoney m1 = new MutableMoney(10000, "USD");
11+
MutableMoney m2 = new MutableMoney(10000, "USD");
12+
assertFalse(m1.equals(m2));
13+
}
14+
15+
@Test
16+
public void givenTwoSameValueMoneyValueObjects_whenEqualityTestPasses_thenCorrect() {
17+
ImmutableMoney m1 = new ImmutableMoney(10000, "USD");
18+
ImmutableMoney m2 = new ImmutableMoney(10000, "USD");
19+
assertTrue(m1.equals(m2));
20+
}
21+
22+
@Test
23+
public void givenValueTypeWithAutoValue_whenFieldsCorrectlySet_thenCorrect() {
24+
AutoValueMoney m = AutoValueMoney.create("USD", 10000);
25+
assertEquals(m.getAmount(), 10000);
26+
assertEquals(m.getCurrency(), "USD");
27+
}
28+
29+
@Test
30+
public void given2EqualValueTypesWithAutoValue_whenEqual_thenCorrect() {
31+
AutoValueMoney m1 = AutoValueMoney.create("USD", 5000);
32+
AutoValueMoney m2 = AutoValueMoney.create("USD", 5000);
33+
assertTrue(m1.equals(m2));
34+
}
35+
@Test
36+
public void given2DifferentValueTypesWithAutoValue_whenNotEqual_thenCorrect() {
37+
AutoValueMoney m1 = AutoValueMoney.create("GBP", 5000);
38+
AutoValueMoney m2 = AutoValueMoney.create("USD", 5000);
39+
assertFalse(m1.equals(m2));
40+
}
41+
@Test
42+
public void given2EqualValueTypesWithBuilder_whenEqual_thenCorrect() {
43+
AutoValueMoneyWithBuilder m1 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
44+
AutoValueMoneyWithBuilder m2 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
45+
assertTrue(m1.equals(m2));
46+
}
47+
@Test
48+
public void given2DifferentValueTypesBuilder_whenNotEqual_thenCorrect() {
49+
AutoValueMoneyWithBuilder m1 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
50+
AutoValueMoneyWithBuilder m2 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("GBP").build();
51+
assertFalse(m1.equals(m2));
52+
}
53+
@Test
54+
public void givenValueTypeWithBuilder_whenFieldsCorrectlySet_thenCorrect() {
55+
AutoValueMoneyWithBuilder m = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
56+
assertEquals(m.getAmount(), 5000);
57+
assertEquals(m.getCurrency(), "USD");
58+
}
59+
}

dozer-tutorial/pom.xml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.baeldung</groupId>
5+
<artifactId>dozer-tutorial</artifactId>
6+
<version>1.0</version>
7+
<name>Dozer</name>
8+
<build>
9+
<plugins>
10+
<plugin>
11+
<groupId>org.apache.maven.plugins</groupId>
12+
<artifactId>maven-compiler-plugin</artifactId>
13+
<version>3.3</version>
14+
<configuration>
15+
<source>7</source>
16+
<target>7</target>
17+
</configuration>
18+
</plugin>
19+
</plugins>
20+
</build>
21+
<dependencies>
22+
<dependency>
23+
<groupId>org.slf4j</groupId>
24+
<artifactId>slf4j-api</artifactId>
25+
<version>1.7.5</version>
26+
</dependency>
27+
28+
<dependency>
29+
<groupId>org.slf4j</groupId>
30+
<artifactId>jcl-over-slf4j</artifactId>
31+
<version>1.7.5</version>
32+
</dependency>
33+
34+
<dependency>
35+
<groupId>org.apache.commons</groupId>
36+
<artifactId>commons-lang3</artifactId>
37+
<version>3.2.1</version>
38+
</dependency>
39+
40+
<dependency>
41+
<groupId>commons-beanutils</groupId>
42+
<artifactId>commons-beanutils</artifactId>
43+
<version>1.9.1</version>
44+
</dependency>
45+
46+
<dependency>
47+
<groupId>net.sf.dozer</groupId>
48+
<artifactId>dozer</artifactId>
49+
<version>5.5.1</version>
50+
</dependency>
51+
<dependency>
52+
<groupId>junit</groupId>
53+
<artifactId>junit</artifactId>
54+
<version>4.3</version>
55+
<scope>test</scope>
56+
</dependency>
57+
58+
</dependencies>
59+
</project>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.baeldung.dozer;
2+
3+
public class Dest {
4+
private String name;
5+
private int age;
6+
7+
public Dest() {
8+
9+
}
10+
11+
public Dest(String name, int age) {
12+
super();
13+
this.name = name;
14+
this.age = age;
15+
}
16+
17+
public String getName() {
18+
return name;
19+
}
20+
21+
public void setName(String name) {
22+
this.name = name;
23+
}
24+
25+
public int getAge() {
26+
return age;
27+
}
28+
29+
public void setAge(int age) {
30+
this.age = age;
31+
}
32+
33+
}

0 commit comments

Comments
 (0)