Skip to content

Commit e8d1df5

Browse files
author
Milan Sulc
committed
Pridana podpora filtru a jejich zpracovani pomoci JAXB
1 parent f312721 commit e8d1df5

File tree

6 files changed

+165
-1
lines changed

6 files changed

+165
-1
lines changed

src/cz/jfx/CodeAnalyser/Control/AnalyserController.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class AnalyserController {
2222
private TaskManager taskManager = new TaskManager();
2323
private LoaderController loaderController;
2424
private ReaderController readerController;
25+
private FilterController filterController;
2526
private IStorage<File> fileStorage = new FileStorage<>();
2627
private IStorage<File> folderStorage = new FolderStorage<>();
2728
private FileFilter codeFilter = new CodeFilter();
@@ -40,6 +41,7 @@ private AnalyserController() {
4041
// Set up
4142
loaderController = new LoaderController(this);
4243
readerController = new ReaderController(this);
44+
filterController = new FilterController(this);
4345

4446
logger.finer("AnalyserController started");
4547
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package cz.jfx.CodeAnalyser.Control;
2+
3+
import cz.jfx.CodeAnalyser.Filters.Filter;
4+
import cz.jfx.CodeAnalyser.Filters.FilterImpl;
5+
import cz.jfx.CodeAnalyser.Filters.FilterList;
6+
import java.io.File;
7+
import java.util.logging.Level;
8+
import java.util.logging.Logger;
9+
import javax.xml.bind.JAXBContext;
10+
import javax.xml.bind.JAXBException;
11+
import javax.xml.bind.Marshaller;
12+
13+
/**
14+
*
15+
* @author Felix
16+
*/
17+
public class FilterController {
18+
19+
private static final Logger logger = Logger.getLogger(FilterController.class.getName());
20+
private FilterImpl filterLists = new FilterImpl();
21+
private AnalyserController context;
22+
23+
public FilterController() {
24+
}
25+
26+
public FilterController(AnalyserController context) {
27+
this.context = context;
28+
29+
FilterList fl1 = new FilterList("xx");
30+
Filter f1 = new Filter("java");
31+
Filter f2 = new Filter("php");
32+
fl1.addFilter(f1);
33+
fl1.addFilter(f2);
34+
35+
FilterList fl2 = new FilterList("cc");
36+
Filter f3 = new Filter("html");
37+
Filter f4 = new Filter("css");
38+
fl2.addFilter(f3);
39+
fl2.addFilter(f4);
40+
41+
filterLists.add(fl1);
42+
filterLists.add(fl2);
43+
44+
saveFilters();
45+
}
46+
47+
public final void saveFilters() {
48+
try {
49+
JAXBContext jaxb = JAXBContext.newInstance(FilterImpl.class);
50+
Marshaller m = jaxb.createMarshaller();
51+
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
52+
m.marshal(filterLists, new File("./list.xml"));
53+
} catch (JAXBException ex) {
54+
logger.log(Level.WARNING, "Error JAXB marshal filter list: {0}", ex.getMessage());
55+
}
56+
}
57+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package cz.jfx.CodeAnalyser.Filters;
2+
3+
import javax.xml.bind.annotation.XmlRootElement;
4+
import javax.xml.bind.annotation.XmlValue;
5+
6+
/**
7+
*
8+
* @author Felix
9+
*/
10+
@XmlRootElement
11+
public class Filter {
12+
13+
private String extension;
14+
15+
public Filter() {
16+
}
17+
18+
public Filter(String extension) {
19+
this.extension = extension;
20+
}
21+
22+
@XmlValue
23+
public String getExtension() {
24+
return extension;
25+
}
26+
27+
public void setExtension(String extension) {
28+
this.extension = extension;
29+
}
30+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package cz.jfx.CodeAnalyser.Filters;
2+
3+
import java.util.ArrayList;
4+
import javax.xml.bind.annotation.XmlElement;
5+
import javax.xml.bind.annotation.XmlRootElement;
6+
7+
/**
8+
*
9+
* @author Felix
10+
*/
11+
@XmlRootElement(name = "filters")
12+
public class FilterImpl extends ArrayList<FilterList> {
13+
14+
public FilterImpl() {
15+
}
16+
17+
@XmlElement(name = "list")
18+
public ArrayList<FilterList> getFilters() {
19+
return this;
20+
}
21+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package cz.jfx.CodeAnalyser.Filters;
2+
3+
import java.util.ArrayList;
4+
import javax.xml.bind.annotation.XmlAttribute;
5+
import javax.xml.bind.annotation.XmlElement;
6+
import javax.xml.bind.annotation.XmlRootElement;
7+
8+
/**
9+
*
10+
* @author Felix
11+
*/
12+
@XmlRootElement(name = "listasdad")
13+
public class FilterList {
14+
15+
@XmlAttribute
16+
public String name;
17+
@XmlElement(name = "extension")
18+
private ArrayList<Filter> extensions;
19+
20+
public FilterList() {
21+
extensions = new ArrayList<>();
22+
name = null;
23+
}
24+
25+
public FilterList(String name) {
26+
this.name = name;
27+
extensions = new ArrayList<>();
28+
}
29+
30+
public FilterList(ArrayList<Filter> extensions) {
31+
this.extensions = extensions;
32+
name = null;
33+
}
34+
35+
public FilterList(ArrayList<Filter> extensions, String name) {
36+
this.extensions = extensions;
37+
this.name = name;
38+
}
39+
40+
public Filter[] getFiltersArray() {
41+
return extensions.toArray(new Filter[]{});
42+
}
43+
44+
public ArrayList<Filter> getFilters() {
45+
return extensions;
46+
}
47+
48+
public void addFilter(Filter f) {
49+
extensions.add(f);
50+
}
51+
52+
public void removeFilter(Filter f) {
53+
extensions.remove(f);
54+
}
55+
}

src/cz/jfx/CodeAnalyser/TaskManager/Runners/Loader.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package cz.jfx.CodeAnalyser.TaskManager.Runners;
22

3-
import cz.jfx.CodeAnalyser.Control.AnalyserController;
43
import cz.jfx.CodeAnalyser.Control.LoaderController;
54
import cz.jfx.CodeAnalyser.TaskManager.TaskManager;
65
import java.io.File;

0 commit comments

Comments
 (0)