summaryrefslogtreecommitdiff
path: root/src/de/pepich/chestapi/DefaultSize.java
blob: 13ae5da4da188f74b17c03813f6b04e2265f9482 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package de.pepich.chestapi;

public final class DefaultSize
{
	private int size;
	private int max_size = 54;
	private boolean allow_square;
	private final boolean dynamic;
	private final boolean automatic;
	
	// -------------------------------------------------------------- //
	// ------------------------- Variations ------------------------- //
	// -------------------------------------------------------------- //
	
	public static final DefaultSize DYNAMIC_AUTO(final int preferred_size, final int max_size)
	{
		return new DefaultSize(preferred_size, max_size, true, true, true);
	}
	
	public static final DefaultSize DYNAMIC_AUTO_RECTANGLE(final int preferred_size, final int max_size)
	{
		return new DefaultSize(preferred_size, max_size, true, true, false);
	}
	
	public static final DefaultSize DYNAMIC_FIXED(final int preferred_size, final int max_size)
	{
		return new DefaultSize(preferred_size, max_size, true, false, true);
	}
	
	public static final DefaultSize DYNAMIC_FIXED_RECTANGLE(final int preferred_size, final int max_size)
	{
		return new DefaultSize(preferred_size, max_size, true, false, false);
	}
	
	public static final DefaultSize FINAL_FIXED(final int size)
	{
		return new DefaultSize(size, size, false, false, true);
	}
	
	public static final DefaultSize FINAL_FIXED_RECTANGLE(final int size)
	{
		return new DefaultSize(size, size, false, false, false);
	}
	
	// ------------------------------------------------------------- //
	// ------------------------ Constructor ------------------------ //
	// ------------------------------------------------------------- //
	
	private DefaultSize(final int size, final int max_size, final boolean dynamic, final boolean automatic,
			final boolean allow_square)
	{
		this.size = size;
		this.dynamic = dynamic;
		this.max_size = max_size;
		this.automatic = automatic;
		this.allow_square = allow_square;
	}
	
	// ------------------------------------------------------------- //
	// -------------------- GETTERS AND SETTERS -------------------- //
	// ------------------------------------------------------------- //
	
	public int getPreferredSize()
	{
		return size;
	}
	
	public int getMaxSize()
	{
		return max_size;
	}
	
	public boolean allowSquareShape()
	{
		return allow_square;
	}
	
	public boolean doAutoResize()
	{
		return automatic;
	}
	
	public boolean isFinalSize()
	{
		return !dynamic;
	}
	
	public void setPreferredSize(final int size) throws IllegalAccessException
	{
		if (!dynamic)
			throw new IllegalAccessException("Instances of FINAL_SIZE can not be modified");
		this.size = size;
	}
	
	public void setMaxSize(final int size) throws IllegalAccessException
	{
		if (!dynamic)
			throw new IllegalAccessException("Instances of FINAL_SIZE can not be modified");
		this.max_size = size;
	}
}