Description
* Main logic of the system:
1) First init starts from client (AJAX with JQuery): onButtonClick() + /gersis/uiproxy?task=
2) In UIProxy we are creating new Task and run it
3) When we are creating new Task we are creating new TaskBox.
This class has logic with java.lang.reflect
4) Inside TaskBox we are creating some of the org.kropli.gersis.examples objects (Task2_1, Task2_2, etc)
5) Then we invoke output() method from examples objects and get some string result
6) Creating with this string result some xml data
7) Transport this xml data to the client side by the servlet UIProxy
8) Show result of example object in buffer window
** All solutions of task you can find in src code below (all accompanied with comments)
packages:
org.kropli.gersis.action - additional classes for 3.1 task
org.kropli.gersis.core - parts of system
TestInit - servlet (/test) for run all tests
UIBuffer - servlet (/uibuffer) for activate buffer
UIProxy - servlet (/uiproxy) for connection from client JS to server Java logic
UIConfig - class with all config params of the system
org.kropli.gersis.examples - classes of all tasks (Task2_1, Task2_2, ...)
org.kropli.gersis.exceptions - additional classes for 3.2 task
org.kropli.gersis.gsingletons -additional classes for 3.3 task
org.kropli.gersis.io -parts of system
_buffer - static class for debuging and working 3.1 task where we need
to get buffer logs from threads
FileStreamURL - class for work with any file from URL
XMLService - class for building xml datas
org.kropli.gersis.task -parts of system
Task - base object for task
TaskBox - box where we can run task
TaskInit - class of task for catching any exceptions
org.kropli.gersis.tests - testing tasks
org.kropli.gersis.tree - additional classes for 2.2 task
Tree - building tree and other action with it
TreeFactory - factory for getting tree class
Node - node of the tree
Value - base object with IValue type
org.kropli.gersis.treemap - additional classes for 2.2 task
TreeMapFactory - factory for getting some type of tree map (json type in our system)
JSONTreeMap - in this class we are using com.google.gson.Gson for building our map form json file
LinkTreeMap - building tree map
org.kropli.gersis.util -parts of system
org.kropli.gersis.examples:
Task2_1.java
Task2_2.java
tree.txt
tree.json
node1.json
node2.json
node3.json
node4.json
Task2_3.java
task2_3.jpg
Task2_4.java
Task2_5.java
Task3_1.java
Task3_2.java
Task3_3.java
Task3_4.java
ITask.java
org.kropli.gersis.action:
Action.java
ActionService.java.java
IAction.java.java
InitAction.java.java
org.kropli.gersis.core:
TestInit.java
UIBuffer.java
UIConfig.java
UIProxy.java
org.kropli.gersis.exceptions:
Exception1.java
Exception2.java
Exception3.java
ImportantException.java
org.kropli.gersis.gsingletons:
SingletonOne.java
SingletonThree.java
SingletonTwo.java
org.kropli.gersis.io:
_buffer.java
FileStreamURL.java
XMLService.java
org.kropli.gersis.task:
Task.java
TaskBox.java
TaskInit.java
org.kropli.gersis.tests:
Task2_1Test.java
Task2_2Test.java
Task2_4Test.java
org.kropli.gersis.tree:
IValue.java
Node.java
Tree.java
TreeFactory.java
Value.java
org.kropli.gersis.treemap:
ITreeMap.java
JSONTreeMap.java
LinkTreeMap.java
TreeMapFactory.java
org.kropli.gersis.util:
DateService.java
ModArrayList.java
org.kropli.gersis.examples:
Task2_1.java
Task2_2.java
tree.txt
tree.json
node1.json
node2.json
node3.json
node4.json
Task2_3.java
task2_3.jsp
Task2_4.java
Task2_5.java
Task3_1.java
Task3_2.java
Task3_3.java
Task3_4.java
ITask.java
> Task2_1.java
package org.kropli.gersis.examples;
import java.util.Collections;
import java.util.List;
import org.kropli.gersis.util.ModArrayList;
public class Task2_1 implements ITask {
private int[] array = {2, 78, 7, 15, -4, -13, -30, 5, 17, 32, 56, -8, -19};
private static final int ABSOLUTE_INDEX_COUNT = 5;
private String output = new String();
@Override
public String output() {
ModArrayList<Integer> modArray = new ModArrayList<Integer>(array);
output += "original array: " + modArray + "\n";
ModArrayList<Integer> minIndexes = new ModArrayList<Integer>(getAbsoluteIndexOfArray(false));
ModArrayList<Integer> maxIndexes = new ModArrayList<Integer>(getAbsoluteIndexOfArray(true));
output += "detected indexes of MAX numbers: " + maxIndexes + "\n";
output += "detected indexes of MIN numbers: " + minIndexes + "\n";
return output;
/*
* [output]:
*
* original array: [2, 78, 7, 15, -4, -13, -30, 5, 17, 32, 56, -8, -19]
*
* absolute array: [2, 78, 7, 15, 4, 13, 30, 5, 17, 32, 56, 8, 19]
* sort array from min to max of numbers: [2, 4, 5, 7, 8, 13, 15, 17, 19, 30, 32, 56, 78]
*
* absolute array: [2, 78, 7, 15, 4, 13, 30, 5, 17, 32, 56, 8, 19]
* sort array from max to min of numbers: [78, 56, 32, 30, 19, 17, 15, 13, 8, 7, 5, 4, 2]
*
* detected indexes of MAX numbers: [1, 10, 9, 6, 12]
* detected indexes of MIN numbers: [0, 4, 7, 2, 11]
*
*/
}
/* interface of project that call open interface */
private int[] getAbsoluteIndexOfArray(boolean isMaxAdsoluteIndex){
return getAbsoluteIndexOfArray(array, ABSOLUTE_INDEX_COUNT, isMaxAdsoluteIndex);
}
/* open interface */
public int[] getAbsoluteIndexOfArray(int[] array, int N, boolean isMaxAdsoluteIndex){
output += "\n";
int[] absoluteArray = new int[array.length];
// make absolute from original array - all numbers > 0
for(int i = 0; i < absoluteArray.length; i++){
absoluteArray[i] = Math.abs(array[i]);
}
List<Integer> listAbsoluteArray = new ModArrayList<Integer>(absoluteArray);
List<Integer> listAbsoluteArrayBuffer = new ModArrayList<Integer>(absoluteArray);
output += "absolute array: " + listAbsoluteArray + "\n";
// sort array from min to max of indexes
Collections.sort(listAbsoluteArray);
if(isMaxAdsoluteIndex){
// sort array from max to min of indexes
Collections.reverse(listAbsoluteArray);
output += "sort array from max to min of numbers: " + listAbsoluteArray + "\n";
}else{
output += "sort array from min to max of numbers: " + listAbsoluteArray + "\n";
}
// cutting array to N count of element and find indexes
int[] buffer = new int[N];
for(int i = 0; i < N; i++ ){
buffer[i] = listAbsoluteArrayBuffer.indexOf(listAbsoluteArray.get(i));
}
output += "\n";
return buffer;
}
}
|
top
> Task2_2.java
/*
* package *.treemap:
* TreeMapFactory - singleton/factory, where you can get JSONTreeMap or other ITreeMap object
* LinkTreeMap - base skeleton(link) of TreeMap
*
* .. with map you can build tree, find in tree any node/nodes and other work with tree
* .. project used JSON type of input file, so all maps of tree/nodes must be in JSON type
* .. project can use not only JSON, but XML/HTML/TXT and other types
* - to do it, you can realize, for example, XMLTreeMap
* and use TreeMapFactory.getTreeMapObj(XMLTreeMap.class) with some adding in getTreeMapObj()
*
*
*
* package *.tree:
* TreeFactory - singleton/factory, where you can get Tree object
* Tree - main class, where you can build tree and do with it all you want
* Node - node of tree
* Value - object with IValue type
*
* package *.core:
* UIConfig - simple object, where you cat get all configure data of this project
*
*/
/*
[print Tree Map form json file: ..html/task2_2/tree.json ]
name: (root)
links of [root]:
name: (test1)
desc: some desc from test1
links of [test1]:
name: (test5)
desc: some desc from test5
links of [root]:
name: (test2)
desc: some desc from test2
links of [test2]:
name: (test6)
desc: some desc from test6
links of [test2]:
name: (test7)
desc: some desc from test7
links of [test7]:
name: (test8)
desc: some desc from test8
links of [test7]:
name: (test9)
desc: some desc from test9
links of [root]:
name: (test3)
desc: some desc from test3
links of [root]:
name: (test4)
desc: some desc from test4
[print Result Tree]
name: root
object: null
location: root
links:
[ name: test1
desc: some desc from test1
parent: {root}
object: null
location: root->test1
links:
[ name: test5
desc: some desc from test5
parent: {test1}
object: null
location: root->test1->test5
]
, name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
links:
[ name: test6
desc: some desc from test6
parent: {test2}
object: null
location: root->test2->test6
, name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
]
, name: test3
desc: some desc from test3
parent: {root}
object: null
location: root->test3
, name: test4
desc: some desc from test4
parent: {root}
object: null
location: root->test4
]
[print Result Tree after adding ( +test11 ): ..html/task2_2/node1.json ]
name: root
object: null
location: root
links:
[ name: test1
desc: some desc from test1
parent: {root}
object: null
location: root->test1
links:
[ name: test5
desc: some desc from test5
parent: {test1}
object: null
location: root->test1->test5
]
, name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
links:
[ name: test6
desc: some desc from test6
parent: {test2}
object: null
location: root->test2->test6
, name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
]
, name: test3
desc: some desc from test3
parent: {root}
object: null
location: root->test3
, name: test4
desc: some desc from test4
parent: {root}
object: null
location: root->test4
, name: test11
desc: some desc from test11
parent: {root}
object: null
location: root->test11
]
[print Result Tree after adding ( +test12 ): ..html/task2_2/node2.json ]
name: root
object: null
location: root
links:
[ name: test1
desc: some desc from test1
parent: {root}
object: null
location: root->test1
links:
[ name: test5
desc: some desc from test5
parent: {test1}
object: null
location: root->test1->test5
]
, name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
links:
[ name: test6
desc: some desc from test6
parent: {test2}
object: null
location: root->test2->test6
, name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
, name: test12
desc: some desc from test12
parent: {test7}
object: null
location: root->test2->test7->test12
]
]
, name: test3
desc: some desc from test3
parent: {root}
object: null
location: root->test3
, name: test4
desc: some desc from test4
parent: {root}
object: null
location: root->test4
]
[print Result Tree after adding ( +test13,test14,test15 ): ../html/task2_2/node3.json ]
name: root
object: null
location: root
links:
[ name: test1
desc: some desc from test1
parent: {root}
object: null
location: root->test1
links:
[ name: test5
desc: some desc from test5
parent: {test1}
object: null
location: root->test1->test5
]
, name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
links:
[ name: test6
desc: some desc from test6
parent: {test2}
object: null
location: root->test2->test6
, name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
, name: test13
desc: some desc from test13
parent: {test7}
object: null
location: root->test2->test7->test13
links:
[ name: test14
desc: some desc from test14
parent: {test13}
object: null
location: root->test2->test7->test13->test14
, name: test15
desc: some desc from test15
parent: {test13}
object: null
location: root->test2->test7->test13->test15
]
]
]
, name: test3
desc: some desc from test3
parent: {root}
object: null
location: root->test3
, name: test4
desc: some desc from test4
parent: {root}
object: null
location: root->test4
]
[print Node of Tree (test7): ..html/task2_2/node4.json ]
name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
[print Nodes of Node (test7): ..html/task2_2/node4.json ]
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
[print Parent of Node (test7): ../html/task2_2/node4.json ]
name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
links:
[ name: test6
desc: some desc from test6
parent: {test2}
object: null
location: root->test2->test6
, name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
]
[print Result Tree after adding object (to test7): ../html/task2_2/node4.json ]
name: root
object: null
location: root
links:
[ name: test1
desc: some desc from test1
parent: {root}
object: null
location: root->test1
links:
[ name: test5
desc: some desc from test5
parent: {test1}
object: null
location: root->test1->test5
]
, name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
links:
[ name: test6
desc: some desc from test6
parent: {test2}
object: null
location: root->test2->test6
, name: test7
desc: some desc from test7
parent: {test2}
object: org.kropli.gersis.tree.Value@1560af9
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
]
, name: test3
desc: some desc from test3
parent: {root}
object: null
location: root->test3
, name: test4
desc: some desc from test4
parent: {root}
object: null
location: root->test4
]
[print Result Object from Node (to test7): ../html/task2_2/node4.json ]
org.kropli.gersis.tree.Value@1560af9
*/
package org.kropli.gersis.examples;
import org.kropli.gersis.core.UIConfig;
import org.kropli.gersis.io.FileStreamURL;
import org.kropli.gersis.tree.IValue;
import org.kropli.gersis.tree.Tree;
import org.kropli.gersis.tree.TreeFactory;
import org.kropli.gersis.tree.Value;
import org.kropli.gersis.treemap.JSONTreeMap;
import org.kropli.gersis.treemap.LinkTreeMap;
import org.kropli.gersis.treemap.TreeMapFactory;
public class Task2_2 implements ITask {
private String jsonURL = UIConfig.getHost() + "/html/task2_2/tree.json";
private String jsonURLNode1 = UIConfig.getHost() + "/html/task2_2/node1.json";
private String jsonURLNode2 = UIConfig.getHost() + "/html/task2_2/node2.json";
private String jsonURLNode3 = UIConfig.getHost() + "/html/task2_2/node3.json";
private String jsonURLNode4 = UIConfig.getHost() + "/html/task2_2/node4.json";
String output = new String();
@Override
public String output() {
/* read file from url */
FileStreamURL jsonFile = new FileStreamURL(jsonURL);
/* create map form the file ( LinkTreeMap ) */
JSONTreeMap jsonTreeMapObj = (JSONTreeMap) TreeMapFactory.getTreeMapObj(JSONTreeMap.class);
LinkTreeMap linkTreeMap = jsonTreeMapObj.getTreeMap(jsonFile.read());
jsonTreeMapObj.clear();
/*
* Other case of getting ListTreeMap cad be done with one type of TreeMap class
* (no any ITreeMap classes) and calling ...FromJSONFile() function:
*
* TreeMap treeMapObj = TreeMapFactory.getTreeMapObj();
* (if we have json file)
* ListTreeMap listTreeMap = treeMapObj.getTreeMapFromJSONFile(jsonFile.read());
* or (if we have xml file)
* ListTreeMap listTreeMap = treeMapObj.getTreeMapFromXMLFile(xmlFile.read());
*
* May be, it's more easily...
*
*/
output += "[print Tree Map form json file: " + jsonURL + " ]\n\n" + linkTreeMap + "\n\n";
Tree treeObj = TreeFactory.get();
treeObj.buildTree(linkTreeMap);
Tree treeObj1 = treeObj.clone();
treeObj1.buildTree(linkTreeMap);
Tree treeObj2 = treeObj.clone();
treeObj2.buildTree(linkTreeMap);
Tree treeObj3 = treeObj.clone();
treeObj3.buildTree(linkTreeMap);
output += "[print Result Tree]\n\n" + treeObj + "\n\n";
FileStreamURL jsonFileNode1 = new FileStreamURL(jsonURLNode1);
LinkTreeMap listTreeMapNode1 = jsonTreeMapObj.getTreeMap(jsonFileNode1.read());
jsonTreeMapObj.clear();
FileStreamURL jsonFileNode2 = new FileStreamURL(jsonURLNode2);
LinkTreeMap listTreeMapNode2 = jsonTreeMapObj.getTreeMap(jsonFileNode2.read());
jsonTreeMapObj.clear();
FileStreamURL jsonFileNode3 = new FileStreamURL(jsonURLNode3);
LinkTreeMap listTreeMapNode3 = jsonTreeMapObj.getTreeMap(jsonFileNode3.read());
jsonTreeMapObj.clear();
FileStreamURL jsonFileNode4 = new FileStreamURL(jsonURLNode4);
LinkTreeMap listTreeMapNode4 = jsonTreeMapObj.getTreeMap(jsonFileNode4.read());
jsonTreeMapObj.clear();
treeObj1.add(listTreeMapNode1);
output += "[print Result Tree after adding ( +test11 ): " + jsonURLNode1 + " ]\n\n" +
treeObj1 + "\n\n";
treeObj2.add(listTreeMapNode2);
output += "[print Result Tree after adding ( +test12 ): " + jsonURLNode2 + " ]\n\n" +
treeObj2 + "\n\n";
treeObj3.add(listTreeMapNode3);
output += "[print Result Tree after adding ( +test13,test14,test15 ): " + jsonURLNode3 + " ]\n\n" +
treeObj3 + "\n\n";
output += "[print Node of Tree (test7): " + jsonURLNode4 + " ]\n\n" +
treeObj.getNode(listTreeMapNode4) + "\n\n";
output += "[print Nodes of Node (test7): " + jsonURLNode4 + " ]\n\n" +
treeObj.getNodesOfNode(listTreeMapNode4) + "\n\n";
output += "[print Parent of Node (test7): " + jsonURLNode4 + " ]\n\n" +
treeObj.getParentOfNode(listTreeMapNode4) + "\n\n";
IValue object = (IValue) new Value();
treeObj.addObjectToNode(listTreeMapNode4, object);
output += "[print Result Tree after adding object (to test7): " +
jsonURLNode4 + " ]\n\n" + treeObj + "\n\n";
IValue objectOut = treeObj.getObjectFromNode(listTreeMapNode4);
output += "[print Result Object from Node (to test7): " +
jsonURLNode4 + " ]\n\n" + objectOut + "\n\n";
treeObj.clear();
return output;
}
}
|
top
> tree.txt
top
> tree.json
top
> node1.json
top
> node2.json
top
> node3.json
top
> node4.json
top
> Task2_3.java
package org.kropli.gersis.examples;
public class Task2_3 implements ITask {
private String output = new String();
public String output() {
/*
mysql> CREATE table Groupp (
id int(5) not null auto_increment,
name varchar(10),
PRIMARY KEY(id)
);
mysql> CREATE table Subject (
id int(5) not null auto_increment,
name varchar(10),
PRIMARY KEY(id)
);
mysql> CREATE table Lecturer (
id int(5) not null auto_increment,
name varchar(10),
PRIMARY KEY(id)
);
mysql> CREATE table Lesson (
id int(5) not null auto_increment,
subject int(10),
groupp int(10),
lecturer int(10),
PRIMARY KEY(id)
);
mysql> select * from Groupp;
+----+---------+
| id | name |
+----+---------+
| 1 | Group 1 |
| 2 | Group 2 |
| 3 | Group 3 |
| 4 | Group 4 |
+----+---------+
mysql> select * from Subject;
+----+-----------+
| id | name |
+----+-----------+
| 1 | Subject 1 |
| 2 | Subject 2 |
| 3 | Subject 3 |
| 4 | Subject 4 |
+----+-----------+
mysql> select * from Lecturer;
+----+------------+
| id | name |
+----+------------+
| 1 | Lecturer 1 |
| 2 | Lecturer 2 |
| 3 | Lecturer 3 |
| 4 | Lecturer 4 |
+----+------------+
mysql> select * from Lesson;
+----+--------+---------+----------+
| id | subject | groupp | lecturer |
+----+--------+---------+----------+
| 1 | 1 | 1 | 1 |
| 2 | 2 | 1 | 2 |
| 3 | 3 | 1 | 3 |
| 4 | 2 | 2 | 3 |
| 5 | 3 | 2 | 1 |
| 6 | 3 | 3 | 2 |
| 7 | 4 | 3 | 1 |
+----+--------+---------+----------+
mysql> SELECT name FROM Subject
INNER JOIN Lesson on Lesson.subject = Subject.id
WHERE Lesson.lecturer = (
SELECT id FROM Lecturer WHERE name = "Lecturer 1"
)
AND Lesson.groupp = (
SELECT id FROM Groupp WHERE name = "Group 2"
);
+-----------+
| name |
+-----------+
| Subject 3 |
+-----------+
mysql> SELECT name FROM Lecturer
JOIN Lesson on Lesson.lecturer = Lecturer.id
WHERE Lesson.subject = (
SELECT id FROM Subject WHERE name = "Subject 2"
)
AND Lesson.groupp = (
SELECT id FROM Groupp WHERE name = "Group 2"
);
+------------+
| name |
+------------+
| Lecturer 3 |
+------------+
mysql> SELECT name FROM Groupp
JOIN Lesson on Lesson.groupp = Groupp.id
WHERE Lesson.lecturer = (
SELECT id FROM Lecturer WHERE name = "Lecturer 1"
);
+---------+
| name |
+---------+
| Group 1 |
| Group 2 |
| Group 3 |
+---------+
*/
return output = "see src code";
}
}
|
top
> task2_3.jpg
top
> Task2_4.java
package org.kropli.gersis.examples;
import java.util.ArrayList;
import java.util.List;
public class Task2_4 implements ITask {
private String output = new String();
public String output() {
Finance fin = new Finance();
fin.setDiscountValue(0.3);
fin.setLimitValue(500);
fin.setCountAfterPoint(3);
fin.addCharge(153);
fin.addCharge(336);
fin.addCharge(454);
fin.calculateCharges();
output += fin.toString();
/*
[131.437, 288.646, 390.016]: 810.099
*/
return output;
}
public class Finance {
private double limitValue;
private double discountValue;
/* set default count = 2 */
private int countAfterPoint = 2;
private List<Double> charges;
private double sumResult = 0;
public void setLimitValue(double limitValue){
this.limitValue = limitValue;
}
public double getLimitValue(){
return limitValue;
}
public void setDiscountValue(double discountValue){
if(discountValue > 0 && discountValue < 1){
this.discountValue = discountValue;
}
}
public double getDiscountValue(){
return discountValue;
}
public void setCountAfterPoint(int countAfterPoint){
this.countAfterPoint = countAfterPoint;
}
public double getCountAfterPoint(){
return countAfterPoint;
}
public double getSumResult(){
return sumResult;
}
public void addCharge(double charge){
if(charges == null){
charges = new ArrayList<Double>();
}
charges.add(makeCountAfterPoint(charge));
}
private double makeCountAfterPoint(double value){
String str = new String();
for(int i = 0; i < countAfterPoint; i++){
str += "0";
}
Double inn = new Double("1" + str);
Double inr = new Double("1" + str + "." + str);
value = Math.round(value * inn) / inr;
return value;
}
public double calculateCharges(){
for(int i = 0; i < charges.size(); i++){
double tmp = makeCountAfterPoint(charges.get(i));
sumResult += tmp;
}
if(sumResult > limitValue){
calculateChargesWithDiscount();
}
return sumResult;
}
private void calculateChargesWithDiscount(){
double discount = 0;
discount = discountValue * (sumResult - limitValue);
List<Double> chargeWithDiscount = new ArrayList<Double>();
for(Double charge : charges){
double tmp = charge - ( charge / sumResult * discount);
chargeWithDiscount.add(makeCountAfterPoint(tmp));
}
sumResult = 0;
for(int i = 0; i < chargeWithDiscount.size(); i++){
sumResult += chargeWithDiscount.get(i);
}
sumResult = makeCountAfterPoint(sumResult);
charges = chargeWithDiscount;
}
public String toString(){
String res = new String();
res += charges + ": " + sumResult + "\n";
return res;
}
}
}
|
top
> Task2_5.java
package org.kropli.gersis.examples;
public class Task2_5 implements ITask {
private String output = new String();
public String output() {
/*
we have:
- first and second coast
- on the first coast 1, 2, 7, 10 numbers
- one river
- one boat
task:
move all numbers to the second coast
solution:
(1,2) - (1) - (7,10) - (2) - (1,2) = 17
1) 1 with 2 go to second coast = 2 speed
2) 1 return to first coast = 1 speed
3) 7 with 10 go to the second coast = 10 speed
4) 2 return to the first coast = 2 speed
5) 1 with 2 go to the sesond coast = 2 speed
result (speed): 2 + 1 + 10 + 2 + 2 = 17 speed
*/
return output = "see src code";
}
}
|
top
> Task3_1.java
package org.kropli.gersis.examples;
import org.kropli.gersis.action.Action;
import org.kropli.gersis.action.ActionService;
import org.kropli.gersis.io._buffer;
public class Task3_1 implements ITask {
/* set output flag for JS client to start buffer servlet */
private String output = "__BUFFER__";
@Override
public String output() {
_buffer.clear();
_buffer.add("Running threads \n");
Action act1 = new Action("Action 1");
Action act2 = new Action("Action 2");
ActionService actService = new ActionService();
actService.addAction(act1, 3, 3000);
actService.addAction(act2, 3, 4000);
actService.runActions();
/*
13:44:05.833: Running threads
13:44:05.834: Creating new thread of : Action 1
13:44:05.834: Creating new thread of : Action 2
13:44:08.835: Count / time interval: 1 / 3000ms
13:44:08.835: [Action 1] running..
13:44:11.835: Count / time interval: 2 / 3000ms
13:44:11.835: [Action 1] running..
13:44:14.835: life of main init...
13:44:14.835: Count / time interval: 3 / 3000ms
13:44:14.835: [Action 1] running..
13:44:14.835: Thread of: Action 1 stopping..
13:44:18.835: Count / time interval: 1 / 4000ms
13:44:18.835: [Action 2] running..
13:44:22.835: Count / time interval: 2 / 4000ms
13:44:22.835: [Action 2] running..
13:44:26.835: life of main init...
13:44:26.835: Count / time interval: 3 / 4000ms
13:44:26.835: [Action 2] running..
13:44:26.835: Thread of: Action 2 stopping..
*/
return output;
}
}
|
top
> Task3_2.java
package org.kropli.gersis.examples;
import org.kropli.gersis.exceptions.Exception1;
import org.kropli.gersis.exceptions.Exception2;
import org.kropli.gersis.exceptions.Exception3;
import org.kropli.gersis.exceptions.ExceptionTypes;
import org.kropli.gersis.exceptions.ImportantException;
public class Task3_2 implements ITask {
private String output = new String();
public String output() {
try {
output += new Calc().runCalculate();
} catch (ImportantException e) {
output += "catch skiped ImportantException";
}
return output;
}
public class Calc {
/*
* Catching Exception1, Exception2, Exception3 and all RuntimeException,
* but not ImportantException.
*
* ImportantException skipping to catching in other methods ( in output() )
*/
public String runCalculate() throws ImportantException{
ExceptionTypes[] exps = new ExceptionTypes[5];
exps[0] = ExceptionTypes.EXCEPTION1;
exps[1] = ExceptionTypes.EXCEPTION2;
exps[2] = ExceptionTypes.EXCEPTION3;
exps[3] = ExceptionTypes.RUNTIME_EXCEPTION;
exps[4] = ExceptionTypes.IMPORTANT_EXCEPTION;
for(int i = 0; i < exps.length; i++){
try {
output += "" + calculate(exps[i]);
} catch (Exception1 e) {
output += e;
} catch (Exception2 e) {
output += e;
} catch (Exception3 e) {
output += e;
} catch (RuntimeException e) {
output += "catch RuntimeException: " + e + "\n";
}
}
return output;
}
public int calculate(ExceptionTypes typeException) throws
ImportantException, Exception1, Exception2, Exception3
{
if(typeException == ExceptionTypes.EXCEPTION1){
throw new Exception1();
}
if(typeException == ExceptionTypes.EXCEPTION2){
throw new Exception2();
}
if(typeException == ExceptionTypes.EXCEPTION3){
throw new Exception3();
}
if(typeException == ExceptionTypes.RUNTIME_EXCEPTION){
int b = 10 / 0;
}
if(typeException == ExceptionTypes.IMPORTANT_EXCEPTION){
throw new ImportantException();
}
return 0;
}
}
}
|
top
> Task3_3.java
package org.kropli.gersis.examples;
import org.kropli.gersis.gsingletons.*;
public class Task3_3 implements ITask {
String output = new String();
@Override
public String output(){
SingletonOne oneSingleton = SingletonOne.getInstance();
SingletonTwo twoSingleton = SingletonTwo.getInstance();
SingletonThree threeSingleton = SingletonThree.getInstance();
output += "SingletonOne: " + oneSingleton.toString() + "\n";
output += "SingletonTwo: " + twoSingleton.toString() + "\n";
output += "SingletonThree: " + threeSingleton.toString();
return output;
}
}
|
top
> Task3_4.java
package org.kropli.gersis.examples;
public class Task3_4 implements ITask {
private String output = new String();
public String output() {
/*
mysql> CREATE table Customer (
id int(5) not null auto_increment,
Customer_code int(10),
Name varchar(25),
VIP varchar(5),
PRIMARY KEY(id)
);
mysql> CREATE table Contract (
id int(5) not null auto_increment,
Number int(20),
Customer_code int(10),
Saldo int(20),
PRIMARY KEY(id)
);
mysql> insert into Customer values(null, 1, "Customer1", "true");
mysql> insert into Customer values(null, 2, "Customer2", "false");
mysql> insert into Customer values(null, 3, "Customer3", "false");
mysql> insert into Customer values(null, 4, "Customer4", "true");
mysql> insert into Contract values(null, 1, "1", 12);
mysql> insert into Contract values(null, 1, "1", -1);
mysql> insert into Contract values(null, 1, "1", -34);
mysql> insert into Contract values(null, 1, "2", -56);
mysql> insert into Contract values(null, 1, "2", 53);
mysql> insert into Contract values(null, 1, "3", 55);
mysql> insert into Contract values(null, 2, "3", -55);
mysql> insert into Contract values(null, 2, "3", -55);
mysql> insert into Contract values(null, 2, "4", 55);
mysql> insert into Contract values(null, 3, "4", -4);
mysql> insert into Contract values(null, 3, "4", -12000000);
mysql> select * from Customer;
+----+---------------+-----------+-------+
| id | Customer_code | Name | VIP |
+----+---------------+-----------+-------+
| 1 | 1 | Customer1 | true |
| 2 | 2 | Customer2 | false |
| 3 | 3 | Customer3 | false |
| 4 | 4 | Customer4 | true |
+----+---------------+-----------+-------+
mysql> select * from Contract;
+----+--------+---------------+-----------+
| id | Number | Customer_code | Saldo |
+----+--------+---------------+-----------+
| 1 | 1 | 1 | 12 |
| 2 | 1 | 1 | -1 |
| 3 | 1 | 1 | -34 |
| 4 | 1 | 2 | -56 |
| 5 | 1 | 2 | 53 |
| 6 | 1 | 3 | 55 |
| 7 | 2 | 3 | -55 |
| 8 | 2 | 3 | -55 |
| 9 | 2 | 4 | 55 |
| 10 | 3 | 4 | -4 |
| 11 | 3 | 4 | -12000000 |
+----+--------+---------------+-----------+
mysql> SELECT Name,VIP,Contract.Saldo,Contract.Number
FROM Customer
INNER JOIN Contract on Contract.Customer_code = Customer.Customer_code
WHERE Customer.VIP = "false" AND Contract.Saldo < 0
OR Customer.VIP = "true" AND Contract.Saldo < -1000000;
+-----------+-------+-----------+--------+
| Name | VIP | Saldo | Number |
+-----------+-------+-----------+--------+
| Customer2 | false | -56 | 1 |
| Customer3 | false | -55 | 2 |
| Customer3 | false | -55 | 2 |
| Customer4 | true | -12000000 | 3 |
+-----------+-------+-----------+--------+
*/
output += "see src code";
return output;
}
}
|
top
org.kropli.gersis.action:
Action.java
ActionService.java.java
IAction.java.java
InitAction.java.java
> Action.java
package org.kropli.gersis.action;
import org.kropli.gersis.io._buffer;
public class Action implements IAction {
private String name;
public Action(String name){
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void run(){
_buffer.add("[" + name + "] running.. \n");
}
}
|
top
> ActionService.java
package org.kropli.gersis.action;
import java.util.ArrayList;
import java.util.List;
import org.kropli.gersis.io._buffer;
public class ActionService {
private List<InitAction> initActions = new ArrayList<InitAction>();
public void addAction(IAction action, int count, int timeInterval){
initActions.add(new InitAction(action, count, timeInterval));
}
public void runActions(){
for(InitAction action : initActions){
int sleepTime = action.getCount() * action.getTimeInterval() ;
action.start();
try{
Thread.sleep(sleepTime);
} catch (InterruptedException e){
}
runMethodFromMainInit();
}
}
private void runMethodFromMainInit(){
_buffer.add("life of main init... \n");
}
}
|
top
>IAction.java
package org.kropli.gersis.action;
public interface IAction {
public void setName(String name);
public String getName();
public void run();
}
|
top
> InitAction.java
package org.kropli.gersis.action;
import java.lang.Thread;
import org.kropli.gersis.io._buffer;
public class InitAction implements Runnable {
private IAction action;
private String actionName;
private int timeInterval;
private int count;
private Thread thread;
public InitAction(IAction action, int count, int timeInterval){
this.actionName = action.getName();
this.timeInterval = timeInterval;
this.count = count;
thread = new Thread(this, "Thread of " + actionName);
_buffer.add("Creating new thread of : " + actionName + "\n");
this.action = action;
}
public void run() {
for(int i = 0; i < count; i++){
try {
Thread.sleep(timeInterval);
} catch (InterruptedException e) {
}
_buffer.add("Count / time interval: " + (i + 1) + " / " + timeInterval + "ms\n");
action.run();
}
_buffer.add("Thread of: " + actionName + " stopping.. \n");
}
public void start(){
thread.start();
}
public void setTimeInterval(int timeInterval){
this.timeInterval = timeInterval;
}
public int getTimeInterval(){
return timeInterval;
}
public void setCount(int count){
this.count = count;
}
public int getCount(){
return count;
}
}
|
top
org.kropli.gersis.core:
TestInit.java
UIBuffer.java
UIConfig.java
UIProxy.java
> TestInit.java
package org.kropli.gersis.core;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import org.kropli.gersis.tests.Task2_1Test;
import org.kropli.gersis.tests.Task2_2Test;
import org.kropli.gersis.tests.Task2_4Test;
public class TestInit extends HttpServlet {
private static final long serialVersionUID = 2644524168506468773L;
private PrintWriter wr;
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
wr = res.getWriter();
String s = new String();
TestSuite suite = new TestSuite();
suite.addTestSuite(Task2_1Test.class);
suite.addTestSuite(Task2_2Test.class);
suite.addTestSuite(Task2_4Test.class);
TestRunner.run(suite);
wr.close();
}
}
|
top
> UIBuffer.java
package org.kropli.gersis.core;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.kropli.gersis.io._buffer;
public class UIBuffer extends HttpServlet {
private static final long serialVersionUID = -3809199978727734890L;
private PrintWriter wr;
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
wr = res.getWriter();
wr.println(_buffer.get());
wr.close();
}
}
|
top
>UIConfig.java
package org.kropli.gersis.core;
public class UIConfig {
private static String HOST;
public static void setHost(String host){
HOST = host;
}
public static String getHost(){
return HOST;
}
}
|
top
> UIProxy.java
package org.kropli.gersis.core;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.kropli.gersis.task.Task;
public class UIProxy extends HttpServlet {
private static final long serialVersionUID = -4753083687288281735L;
private PrintWriter wr;
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
UIConfig.setHost("http://" + req.getLocalName() + ":" +req.getLocalPort());
wr = res.getWriter();
String taskName = req.getParameter("task");
Task task = new Task(taskName);
String result = task.run();
wr.println(result);
wr.close();
}
}
|
top
org.kropli.gersis.exceptions:
Exception1.java
Exception2.java
Exception3.java
ImportantException.java
> Exception1.java
package org.kropli.gersis.exceptions;
public class Exception1 extends Exception {
private static final long serialVersionUID = 3833625241180558721L;
public String toString(){
return "catch Exception1 \n";
}
}
|
top
> Exception2.java
package org.kropli.gersis.exceptions;
public class Exception2 extends Exception{
private static final long serialVersionUID = -3020254492386145198L;
public String toString(){
return "catch Exception2 \n";
}
}
|
top
> Exception3.java
package org.kropli.gersis.exceptions;
public class Exception3 extends Exception{
private static final long serialVersionUID = 5559133223476777808L;
public String toString(){
return "catch Exception3 \n";
}
}
|
top
> ImportantException.java
package org.kropli.gersis.exceptions;
public class ImportantException extends Exception{
private static final long serialVersionUID = -6825082871196729037L;
public String toString(){
return "catch ImportantException \n";
}
}
|
top
org.kropli.gersis.gsingletons:
SingletonOne.java
SingletonThree.java
SingletonTwo.java
> SingletonOne.java
package org.kropli.gersis.gsingletons;
public final class SingletonOne {
private static SingletonOne instance;
private SingletonOne(){}
public static SingletonOne getInstance(){
if(instance == null){
instance = new SingletonOne();
}
return instance;
}
}
|
top
> SingletonThree.java
package org.kropli.gersis.gsingletons;
public final class SingletonThree {
private SingletonThree(){}
private static class SingletonDemandHolder {
private final static SingletonThree instanse = new SingletonThree();
}
public static SingletonThree getInstance(){
return SingletonDemandHolder.instanse;
}
}
|
top
> SingletonTwo.java
package org.kropli.gersis.gsingletons;
public final class SingletonTwo {
private static SingletonTwo instance = new SingletonTwo();
private SingletonTwo(){}
public static SingletonTwo getInstance(){
return instance;
}
}
|
top
org.kropli.gersis.io:
_buffer.java
FileStreamURL.java
XMLService.java
> _buffer.java
package org.kropli.gersis.io;
import java.util.List;
import org.kropli.gersis.util.DateService;
public final class _buffer {
private static String BUFFER = new String();
private static DateService DS = new DateService();
public static void add(String str){
BUFFER += DS.getTimeStamp() + ": " + str;
}
public static void add(int str){
BUFFER += DS.getTimeStamp() + ": " + str;
}
public static void add(List<?> list){
BUFFER += DS.getTimeStamp() + ": " + list.toString();
}
public static void addn(){
BUFFER += "\n";
}
public static String get(){
return BUFFER;
}
public static void clear(){
BUFFER = "";
}
}
|
top
> FileStreamURL.java
package org.kropli.gersis.io;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class FileStreamURL {
private BufferedReader fileStream;
public FileStreamURL(String urlStream){
openStream(urlStream);
}
private void openStream(String urlStream){
try {
URL url = new URL(urlStream);
fileStream = new BufferedReader(new InputStreamReader(url.openStream()));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public StringBuffer read(){
StringBuffer buffer = null;
try {
String inputLine = new String();
buffer = new StringBuffer();
while ((inputLine = fileStream.readLine()) != null) {
buffer.append(inputLine);
}
} catch (IOException e) {
e.printStackTrace();
}
return buffer;
}
public void clear(){
try {
fileStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
|
top
> XMLService.java
package org.kropli.gersis.io;
public class XMLService {
public String createXML(String key, String value){
String strXML = new String();
strXML += "<" + key + ">";
strXML += value;
strXML += "</" + key + ">";
return strXML;
}
public String createRootXML(String xmlBody){
String strXML = new String();
strXML += "<?xml version='1.0' ?>";
strXML += "<root>";
strXML += xmlBody;
strXML += "</root>";
return strXML;
}
}
|
top
org.kropli.gersis.task:
Task.java
TaskBox.java
TaskInit.java
> Task.java
package org.kropli.gersis.task;
public final class Task extends TaskInit {
private TaskBox taskBox;
public Task(String taskName){
taskBox = new TaskBox(taskName);
}
public String run(){
return super.run(taskBox);
}
public void clear(){
taskBox.clear();
}
}
|
top
> TaskBox.java
package org.kropli.gersis.task;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.kropli.gersis.examples.ITask;
import org.kropli.gersis.io.XMLService;
public final class TaskBox {
private String taskName;
private Class<ITask> pointClass;
private Method pointOutputMethod;
private Constructor<ITask> pointConstructor;
private XMLService xml;
private String xmlResults;
public TaskBox(String name){
taskName = name;
}
public String getName(){
return taskName;
}
public String run()
throws ClassNotFoundException, SecurityException, NoSuchMethodException,
IllegalArgumentException, InstantiationException, IllegalAccessException,
InvocationTargetException
{
createClassPoint(taskName);
createConstructorPoint();
createMethodsPoint();
invokeMethods();
return xmlResults;
}
private void createClassPoint(String taskName) throws ClassNotFoundException{
String packageName = ITask.class.getPackage().getName();
pointClass = (Class<ITask>) Class.forName(packageName + "." + taskName);
}
private void createConstructorPoint() throws SecurityException, NoSuchMethodException{
pointConstructor = pointClass.getConstructor();
}
private void createMethodsPoint() throws SecurityException, NoSuchMethodException{
pointOutputMethod = pointClass.getMethod("output", new Class[]{});
}
private void invokeMethods() throws IllegalArgumentException, InstantiationException,
IllegalAccessException, InvocationTargetException
{
xml = new XMLService();
xmlResults = new String();
Object obj = pointConstructor.newInstance();
String output = (String) pointOutputMethod.invoke(obj, new Object[]{});
xmlResults += xml.createXML("output", output);
xmlResults = xml.createRootXML(xmlResults);
}
public void clear(){
taskName = null;
pointClass = null;
pointOutputMethod = null;
pointConstructor = null;
xml = null;
xmlResults = null;
}
}
|
top
> TaskInit.java
package org.kropli.gersis.task;
import java.lang.reflect.InvocationTargetException;
public class TaskInit {
private String result = new String();
protected String run(TaskBox taskBox){
runTaskWithExceptions(taskBox);
return result;
}
private void runTaskWithExceptions(TaskBox taskBox){
try {
result = taskBox.run();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
|
top
org.kropli.gersis.tests:
Task2_1Test.java
Task2_2Test.java
Task2_4Test.java
> Task2_1Test.java
/*
...E
Time: 0,003
There was 1 error:
1) testGetAbsoluteIndexOfArrayWithOtherCase(org.kropli.gersis.tests.Task2_1Test)java.lang.IndexOutOfBoundsException: Index: 6, Size: 6
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.kropli.gersis.examples.Task2_1.getAbsoluteIndexOfArray(Task2_1.java:88)
at org.kropli.gersis.tests.Task2_1Test.testGetAbsoluteIndexOfArrayWithOtherCase(Task2_1Test.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.kropli.gersis.core.TestInit.doGet(TestInit.java:37)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(Unknown Source)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(Unknown Source)
at com.caucho.server.dispatch.ServletInvocation.service(Unknown Source)
at com.caucho.server.http.HttpRequest.handleRequest(Unknown Source)
at com.caucho.server.port.TcpConnection.run(Unknown Source)
at com.caucho.util.ThreadPool$Item.runTasks(Unknown Source)
at com.caucho.util.ThreadPool$Item.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
FAILURES!!!
Tests run: 3, Failures: 0, Errors: 1
*/
package org.kropli.gersis.tests;
import static org.junit.Assert.*;
import junit.framework.TestCase;
import org.kropli.gersis.examples.Task2_1;
public class Task2_1Test extends TestCase {
Task2_1 task2_1 = new Task2_1();
public void testGetAbsoluteIndexOfArrayWithMaxIndexes() throws Exception {
int[] array = {2, 78, 7, 15, -4, -13, -30, 5, 17, 32, 56, -8, -19};
int absoluteIndexCount = 5;
int[] resultOfMaxIndexes = task2_1.getAbsoluteIndexOfArray(array, absoluteIndexCount, true);
int[] assertArrayOfMaxIndexes = {1, 10, 9, 6, 12};
assertArrayEquals(assertArrayOfMaxIndexes, resultOfMaxIndexes);
}
public void testGetAbsoluteIndexOfArrayWithMinIndexes() throws Exception {
int[] array = {2, 78, 7, 15, -4, -13, -30, 5, 17, 32, 56, -8, -19};
int absoluteIndexCount = 5;
int[] resultOfMinIndexes = task2_1.getAbsoluteIndexOfArray(array, absoluteIndexCount, false);
int[] assertArrayOfMinIndexes = {0, 4, 7, 2, 11};
assertArrayEquals(assertArrayOfMinIndexes, resultOfMinIndexes);
}
public void testGetAbsoluteIndexOfArrayWithOtherCase() throws Exception {
int[] arrayOther = {2, 78, 7, 15, -4, -13};
int absoluteIndexCountOther = 100;
int[] resultOther = task2_1.getAbsoluteIndexOfArray(arrayOther, absoluteIndexCountOther, true);
assertTrue(resultOther.length > 0);
}
}
|
top
> Task2_2Test.java
/*
.E..F.F.F.
Time: 0,109
There was 1 error:
1) testBuildTree(org.kropli.gersis.tests.Task2_2Test)java.lang.NullPointerException
at org.kropli.gersis.tree.Tree.buildNodes(Tree.java:39)
at org.kropli.gersis.tree.Tree.buildTree(Tree.java:32)
at org.kropli.gersis.tests.Task2_2Test.testBuildTree(Task2_2Test.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.kropli.gersis.core.TestInit.doGet(TestInit.java:40)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(Unknown Source)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(Unknown Source)
at com.caucho.server.dispatch.ServletInvocation.service(Unknown Source)
at com.caucho.server.http.HttpRequest.handleRequest(Unknown Source)
at com.caucho.server.port.TcpConnection.run(Unknown Source)
at com.caucho.util.ThreadPool$Item.runTasks(Unknown Source)
at com.caucho.util.ThreadPool$Item.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
There were 3 failures:
1) testGetNode(org.kropli.gersis.tests.Task2_2Test)junit.framework.AssertionFailedError: expected:<name: test7
desc: some desc from test7
parent: {test2}
object: null
location: test2->test7
> but was:< name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
>
at org.kropli.gersis.tests.Task2_2Test.testGetNode(Task2_2Test.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.kropli.gersis.core.TestInit.doGet(TestInit.java:40)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(Unknown Source)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(Unknown Source)
at com.caucho.server.dispatch.ServletInvocation.service(Unknown Source)
at com.caucho.server.http.HttpRequest.handleRequest(Unknown Source)
at com.caucho.server.port.TcpConnection.run(Unknown Source)
at com.caucho.util.ThreadPool$Item.runTasks(Unknown Source)
at com.caucho.util.ThreadPool$Item.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
2) testGetNodesOfNode(org.kropli.gersis.tests.Task2_2Test)junit.framework.AssertionFailedError: expected:<[name: test8
desc: some desc from test8
parent: {test7}
object: null
location: test7->test8
, name: test9
desc: some desc from test9
object: null
location: test9
]> but was:<[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]>
at org.kropli.gersis.tests.Task2_2Test.testGetNodesOfNode(Task2_2Test.java:151)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.kropli.gersis.core.TestInit.doGet(TestInit.java:40)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(Unknown Source)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(Unknown Source)
at com.caucho.server.dispatch.ServletInvocation.service(Unknown Source)
at com.caucho.server.http.HttpRequest.handleRequest(Unknown Source)
at com.caucho.server.port.TcpConnection.run(Unknown Source)
at com.caucho.util.ThreadPool$Item.runTasks(Unknown Source)
at com.caucho.util.ThreadPool$Item.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
3) testGetParentOfNode(org.kropli.gersis.tests.Task2_2Test)junit.framework.AssertionFailedError: expected:<name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
> but was:< name: test2
desc: some desc from test2
parent: {root}
object: null
location: root->test2
links:
[ name: test6
desc: some desc from test6
parent: {test2}
object: null
location: root->test2->test6
, name: test7
desc: some desc from test7
parent: {test2}
object: null
location: root->test2->test7
links:
[ name: test8
desc: some desc from test8
parent: {test7}
object: null
location: root->test2->test7->test8
, name: test9
desc: some desc from test9
parent: {test7}
object: null
location: root->test2->test7->test9
]
]
>
at org.kropli.gersis.tests.Task2_2Test.testGetParentOfNode(Task2_2Test.java:182)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.kropli.gersis.core.TestInit.doGet(TestInit.java:40)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(Unknown Source)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(Unknown Source)
at com.caucho.server.dispatch.ServletInvocation.service(Unknown Source)
at com.caucho.server.http.HttpRequest.handleRequest(Unknown Source)
at com.caucho.server.port.TcpConnection.run(Unknown Source)
at com.caucho.util.ThreadPool$Item.runTasks(Unknown Source)
at com.caucho.util.ThreadPool$Item.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
FAILURES!!!
Tests run: 6, Failures: 3, Errors: 1
*/
package org.kropli.gersis.tests;
import java.util.ArrayList;
import java.util.List;
import org.kropli.gersis.core.UIConfig;
import org.kropli.gersis.io.FileStreamURL;
import org.kropli.gersis.tree.IValue;
import org.kropli.gersis.tree.Node;
import org.kropli.gersis.tree.Tree;
import org.kropli.gersis.tree.Value;
import org.kropli.gersis.treemap.JSONTreeMap;
import org.kropli.gersis.treemap.LinkTreeMap;
import org.kropli.gersis.treemap.TreeMapFactory;
import junit.framework.TestCase;
public class Task2_2Test extends TestCase {
/*
testing only Tree class interfaces
*/
private Tree tree = new Tree();
JSONTreeMap jsonTreeMapObj = (JSONTreeMap) TreeMapFactory.getTreeMapObj(JSONTreeMap.class);
public void setUp(){
UIConfig.setHost("http://localhost:8080/");
}
public void testBuildTree() throws Exception {
String jsonURL = UIConfig.getHost() + "/gersis/html/task2_2/tree.json";
FileStreamURL jsonFile = new FileStreamURL(jsonURL);
LinkTreeMap linkTreeMap = jsonTreeMapObj.getTreeMap(jsonFile.read());
jsonTreeMapObj.clear();
tree.buildTree(linkTreeMap);
Node resultTree = tree.getTree();
assertNotNull(resultTree);
LinkTreeMap linkTreeMapEmpty = new LinkTreeMap();
tree.buildTree(linkTreeMapEmpty);
Node resultTree2 = tree.getTree();
assertNotNull(resultTree2);
}
public void testAdd() throws Exception {
String jsonURL = UIConfig.getHost() + "/gersis/html/task2_2/tree.json";
FileStreamURL jsonFile = new FileStreamURL(jsonURL);
LinkTreeMap linkTreeMap = jsonTreeMapObj.getTreeMap(jsonFile.read());
jsonTreeMapObj.clear();
tree.buildTree(linkTreeMap);
String jsonURLNode1 = UIConfig.getHost() + "/gersis/html/task2_2/node1.json";
FileStreamURL jsonFileNode1 = new FileStreamURL(jsonURLNode1);
LinkTreeMap listTreeMapNode1 = jsonTreeMapObj.getTreeMap(jsonFileNode1.read());
jsonTreeMapObj.clear();
tree.add(listTreeMapNode1);
assertNotNull(tree.getTree());
}
public void testGetNode() throws Exception {
String jsonURL = UIConfig.getHost() + "/gersis/html/task2_2/tree.json";
FileStreamURL jsonFile = new FileStreamURL(jsonURL);
LinkTreeMap linkTreeMap = jsonTreeMapObj.getTreeMap(jsonFile.read());
jsonTreeMapObj.clear();
tree.buildTree(linkTreeMap);
String jsonURLNode4 = UIConfig.getHost() + "/gersis/html/task2_2/node4.json";
FileStreamURL jsonFileNode4 = new FileStreamURL(jsonURLNode4);
LinkTreeMap listTreeMapNode4 = jsonTreeMapObj.getTreeMap(jsonFileNode4.read());
jsonTreeMapObj.clear();
Node node = tree.getNode(listTreeMapNode4);
Node nodeTest = new Node();
nodeTest.setName("test7");
nodeTest.setDesc("some desc from test7");
Node nodeTestParent = new Node();
nodeTestParent.setName("test2");
nodeTest.setParentPoint(nodeTestParent);
/*
nodeTest:
name: test7
desc: some desc from test7
parent: {test2}
object: null
*/
assertEquals(nodeTest, node);
}
public void testGetNodesOfNode() throws Exception {
String jsonURL = UIConfig.getHost() + "/gersis/html/task2_2/tree.json";
FileStreamURL jsonFile = new FileStreamURL(jsonURL);
LinkTreeMap linkTreeMap = jsonTreeMapObj.getTreeMap(jsonFile.read());
jsonTreeMapObj.clear();
tree.buildTree(linkTreeMap);
String jsonURLNode4 = UIConfig.getHost() + "/gersis/html/task2_2/node4.json";
FileStreamURL jsonFileNode4 = new FileStreamURL(jsonURLNode4);
LinkTreeMap listTreeMapNode4 = jsonTreeMapObj.getTreeMap(jsonFileNode4.read());
jsonTreeMapObj.clear();
List<Node> nodes = tree.getNodesOfNode(listTreeMapNode4);
Node nodeTest = new Node();
nodeTest.setName("test8");
nodeTest.setDesc("some desc from test8");
Node nodeTestParent = new Node();
nodeTestParent.setName("test7");
nodeTest.setParentPoint(nodeTestParent);
Node nodeTest2 = new Node();
nodeTest2.setName("test9");
nodeTest2.setDesc("some desc from test9");
Node nodeTestParent2 = new Node();
nodeTestParent2.setName("test7");
nodeTest.setParentPoint(nodeTestParent2);
List<Node> nodesTest = new ArrayList<Node>();
nodesTest.add(nodeTest);
nodesTest.add(nodeTest2);
assertEquals(nodesTest, nodes);
}
public void testGetParentOfNode() throws Exception {
String jsonURL = UIConfig.getHost() + "/gersis/html/task2_2/tree.json";
FileStreamURL jsonFile = new FileStreamURL(jsonURL);
LinkTreeMap linkTreeMap = jsonTreeMapObj.getTreeMap(jsonFile.read());
jsonTreeMapObj.clear();
tree.buildTree(linkTreeMap);
String jsonURLNode4 = UIConfig.getHost() + "/gersis/html/task2_2/node4.json";
FileStreamURL jsonFileNode4 = new FileStreamURL(jsonURLNode4);
LinkTreeMap listTreeMapNode4 = jsonTreeMapObj.getTreeMap(jsonFileNode4.read());
jsonTreeMapObj.clear();
Node nodeTest = new Node();
nodeTest.setName("test2");
nodeTest.setDesc("some desc from test2");
Node nodeTestParent = new Node();
nodeTestParent.setName("root");
nodeTest.setParentPoint(nodeTestParent);
Node node = tree.getParentOfNode(listTreeMapNode4);
assertEquals(nodeTest, node);
}
public void testAddObjectToNodeAndGetObjectFromNode() throws Exception {
String jsonURL = UIConfig.getHost() + "/gersis/html/task2_2/tree.json";
FileStreamURL jsonFile = new FileStreamURL(jsonURL);
LinkTreeMap linkTreeMap = jsonTreeMapObj.getTreeMap(jsonFile.read());
jsonTreeMapObj.clear();
tree.buildTree(linkTreeMap);
String jsonURLNode4 = UIConfig.getHost() + "/gersis/html/task2_2/node4.json";
FileStreamURL jsonFileNode4 = new FileStreamURL(jsonURLNode4);
LinkTreeMap listTreeMapNode4 = jsonTreeMapObj.getTreeMap(jsonFileNode4.read());
jsonTreeMapObj.clear();
IValue object = (IValue) new Value();
tree.addObjectToNode(listTreeMapNode4, object);
Object objectTest = tree.getObjectFromNode(listTreeMapNode4);
assertEquals(objectTest, object);
}
}
|
top
> Task2_4Test.java
/*
.
Time: 0,001
OK (1 test)
*/
package org.kropli.gersis.tests;
import org.kropli.gersis.examples.Task2_4;
import junit.framework.TestCase;
public class Task2_4Test extends TestCase {
private Task2_4.Finance fin = new Task2_4(). new Finance();
public void testCalculateCharges() throws Exception {
fin.setDiscountValue(0.3);
fin.setLimitValue(500);
fin.setCountAfterPoint(3);
fin.addCharge(153);
fin.addCharge(336);
fin.addCharge(454);
double result = fin.calculateCharges();
double resultTest = 810.099;
assertEquals(resultTest, result);
}
}
|
top
org.kropli.gersis.tree:
IValue.java
Node.java
Tree.java
TreeFactory.java
Value.java
> IValue.java
package org.kropli.gersis.tree;
public interface IValue {
}
|
top
> Node.java
package org.kropli.gersis.tree;
import java.util.ArrayList;
import java.util.List;
public class Node {
private String name;
private String desc;
private int level;
private Node parentPoint;
private List<String> nodeLocation;
private List<Node> links;
private IValue object;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setDesc(String desc){
this.desc = desc;
}
public String getDesc() {
return desc;
}
public void setLevel(int level){
this.level = level;
}
public int getLevel() {
return level;
}
public void setParentPoint(Node point){
parentPoint = point;
}
public Node getParentPoint(){
return parentPoint;
}
public List<String> getNodeLocation(){
if(parentPoint == null){
nodeLocation = new ArrayList<String>();
}else{
nodeLocation = parentPoint.getNodeLocation();
}
nodeLocation.add(name);
return nodeLocation;
}
public void setNodeLocation(List<String> location){
nodeLocation = location;
}
public String getStringNodeLocation(){
String res = new String();
List<String> list = getNodeLocation();
for(int i = 0; i < list.size(); i++){
res += list.get(i);
if(i != list.size() - 1){
res += "->";
}
}
return res;
}
public void setNodes(List<Node> nodes){
links = nodes;
}
public List<Node> getNodes(){
return links;
}
public void addNode(Node node){
if(links != null){
links.add(node);
}
}
public void setObject(IValue object){
this.object = object;
}
public IValue getObject(){
return object;
}
public String toString(){
String res = new String();
res += getLevelString() + "name: " + name + "\n";
if(desc != null){
res += getLevelString() + "desc: " + desc + "\n";
}
if(parentPoint != null){
res += getLevelString() + "parent: {" + parentPoint.getName() + "}\n";
}
res += getLevelString() + "object: " + object + "\n";
res += getLevelString() + "location: " + getStringNodeLocation() + "\n";
if(links != null){
res += getLevelString() + "links:\n" + links.toString() + "\n";
}else{
res += "\n";
}
return res;
}
private String getLevelString(){
String str = new String();
for(int i = 0; i < level; i++){
str += " ";
}
return str;
}
}
|
top
> Tree.java
package org.kropli.gersis.tree;
import java.util.ArrayList;
import java.util.List;
import org.kropli.gersis.treemap.LinkTreeMap;
public class Tree {
private Node tree;
/* found node in map of tree */
private LinkTreeMap nodeSearchInMap;
/* found location of node in map */
private List<String> nodeSearchLocationInMap;
/* found node in tree */
private Node nodeSearchInTree;
/* level of left tabulation in printing */
private int bufLevel = 0;
public void buildTree(LinkTreeMap map){
String name = map.getName();
tree = new Node();
tree.setName(name);
bufLevel++;
tree.setNodes(buildNodes(map.getLinks(), tree));
bufLevel--;
}
private List<Node> buildNodes(LinkTreeMap[] links, Node prPoint){
List<Node> nodes = new ArrayList<Node>();
for(LinkTreeMap li : links){
Node node = new Node();
node.setName(li.getName());
node.setDesc(li.getDesc());
node.setLevel(bufLevel);
if(li.getLinks() != null){
bufLevel++;
node.setNodes(buildNodes(li.getLinks(), node));
bufLevel--;
}
if(prPoint != null){
node.setParentPoint(prPoint);
}
nodes.add(node);
}
return nodes;
}
public Node getTree(){
return tree;
}
public void add(LinkTreeMap mapNode){
if(tree.getName().compareTo(mapNode.getName()) == 0){
bufLevel++;
nodeSearchLocationInMap = new ArrayList<String>();
searchNodeInMap(mapNode.getLinks());
searchNodeInTree(tree.getNodes());
bufLevel++;
addNode();
bufLevel--;
}
}
private void searchNodeInMap(LinkTreeMap[] mapNode){
for(int i = 0; i < mapNode.length; i++){
if(mapNode[i].getPoint() == null){
nodeSearchLocationInMap.add(mapNode[i].getName());
LinkTreeMap[] links = mapNode[i].getLinks();
if(links != null){
searchNodeInMap(links);
}
}else{
nodeSearchInMap = mapNode[i];
}
}
}
private void searchNodeInTree(List<Node> nodes){
for(int i = 0; i < nodes.size(); i++ ){
if(nodeSearchLocationInMap.contains(nodes.get(i).getName())){
nodeSearchInTree = nodes.get(i);
searchNodeInTree(nodes.get(i).getNodes());
}else{
}
}
if(nodeSearchInTree == null){
nodeSearchInTree = tree;
}
}
private void addNode(){
if(nodeSearchInTree.getName().compareTo(tree.getName()) == 0){
bufLevel--;
bufLevel--;
}
bufLevel++;
Node node = makeNode();
bufLevel--;
if(nodeSearchInMap.getLinks() != null){
bufLevel++;
bufLevel++;
List<Node> nodes = buildNodes(nodeSearchInMap.getLinks(), node);
bufLevel--;
bufLevel--;
node.setNodes(nodes);
}
node.setParentPoint(nodeSearchInTree);
nodeSearchInTree.addNode(node);
}
private Node makeNode(){
Node node = new Node();
node.setName(nodeSearchInMap.getName());
node.setDesc(nodeSearchInMap.getDesc());
node.setNodeLocation(null);
node.setLevel(bufLevel);
return node;
}
public Node getNode(LinkTreeMap mapNode){
Node node = null;
if(tree.getName().compareTo(mapNode.getName()) == 0){
nodeSearchLocationInMap = new ArrayList<String>();
searchNodeInMap(mapNode.getLinks());
searchNodeInTree(tree.getNodes());
for(Node no : nodeSearchInTree.getNodes()){
if(nodeSearchInMap.getName().compareTo(no.getName()) == 0){
node = no;
}
}
}
return node;
}
public List<Node> getNodesOfNode(LinkTreeMap mapNode){
Node node = getNode(mapNode);
return node.getNodes();
}
public Node getParentOfNode(LinkTreeMap mapNode){
Node node = getNode(mapNode);
return node.getParentPoint();
}
public void addObjectToNode(LinkTreeMap mapNode, IValue object){
Node node = getNode(mapNode);
node.setObject(object);
}
public IValue getObjectFromNode(LinkTreeMap mapNode){
Node node = getNode(mapNode);
IValue object = node.getObject();
return object;
}
public String toString(){
return tree.toString();
}
public Tree clone(){
return new Tree();
}
public void clear(){
tree = null;
nodeSearchInMap = null;
nodeSearchLocationInMap = null;
nodeSearchInTree = null;
bufLevel = 0;
}
/* only for testing */
public void fortestSearchNodeInMap(LinkTreeMap[] mapNode){
searchNodeInMap(mapNode);
}
public void fortestSearchNodeInTree(List<Node> nodes){
searchNodeInTree(nodes);
}
public void fortestAddNode(){
addNode();
}
public Node fortestMakeNode(){
return makeNode();
}
}
|
top
> TreeFactory.java
package org.kropli.gersis.tree;
public final class TreeFactory{
private static Tree instanceOfTree;
private TreeFactory(){}
public static Tree get(){
if(instanceOfTree == null){
instanceOfTree = new Tree();
}
return instanceOfTree;
}
}
|
top
> Value.java
package org.kropli.gersis.tree;
public class Value implements IValue {
}
|
top
org.kropli.gersis.treemap:
ITreeMap.java
JSONTreeMap.java
LinkTreeMap.java
TreeMapFactory.java
> ITreeMap.java
package org.kropli.gersis.treemap;
public interface ITreeMap<E> {
public E getTreeMap(StringBuffer scheme);
public String toString();
}
|
top
> JSONTreeMap.java
package org.kropli.gersis.treemap;
import com.google.gson.Gson;
public class JSONTreeMap implements ITreeMap<LinkTreeMap> {
private LinkTreeMap map;
public LinkTreeMap getTreeMap(StringBuffer scheme){
if(map == null){
buildJSONTree(scheme);
}
return map;
}
private void buildJSONTree(StringBuffer scheme){
map = new Gson().fromJson(scheme.toString(), LinkTreeMap.class);
}
public String toString(){
return map.toString();
}
public void clear(){
map = null;
}
}
|
top
> LinkTreeMap.java
package org.kropli.gersis.treemap;
public class LinkTreeMap {
private String name;
private String desc;
private String point;
private LinkTreeMap[] links;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getDesc() {
return desc;
}
public void setPoint(String point) {
this.point = point;
}
public String getPoint() {
return point;
}
public void setLinks(LinkTreeMap[] links) {
this.links = links;
}
public LinkTreeMap[] getLinks() {
return links;
}
public String toString() {
String res = new String();
res += "name: (" + name + ")";
if(desc != null){
res += "\n" + "desc: " + desc + "\n\n";
}
if(links != null){
for(int i = 0; i < links.length; i++){
res += "\n\nlinks of [" + name +"]:\n" + links[i].toString();
}
}
return res;
}
}
|
top
> TreeMapFactory.java
package org.kropli.gersis.treemap;
public final class TreeMapFactory {
private static ITreeMap<?> instanceOfTreeMap;
private TreeMapFactory(){}
public static ITreeMap<?> getTreeMapObj(Class<?> clazz){
if(instanceOfTreeMap == null){
if(clazz.equals(JSONTreeMap.class)){
instanceOfTreeMap = new JSONTreeMap();
}
/*
or you can:
if(clazz.equals(XMLTreeMap.class)){
instanceOfTreeMap = new XMLTreeMap();
}
or other types...
*/
}
return instanceOfTreeMap;
}
}
|
top
org.kropli.gersis.util:
DateService.java
ModArrayList.java
> DateService.java
package org.kropli.gersis.util;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateService {
public String getTimeStamp(){
Timestamp st = new Timestamp(Calendar.getInstance().getTimeInMillis());
return st.toString().substring(st.toString().indexOf(" ")).trim();
}
public String getDateStamp(){
DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
return df.format(new java.util.Date());
}
}
|
top
> ModArrayList.java
package org.kropli.gersis.util;
import java.util.ArrayList;
public class ModArrayList<E> extends ArrayList<E> {
private static final long serialVersionUID = -5594061077431106647L;
public ModArrayList(){}
public ModArrayList(int[] array){
add(array);
}
public void add(int[] array){
for(Integer in : array){
super.add((E)in);
}
}
}
|
top
|