Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ssc.servlets;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Field;
- import java.lang.reflect.Type;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.List;
- import javax.faces.context.FacesContext;
- import javax.servlet.ServletException;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import lotus.domino.Database;
- import lotus.domino.Document;
- import ssc.applications.hr.documents.PersonDocument;
- import ssc.applications.hr.documents.SchemeDocument;
- import ssc.applications.invoices.documents.invoice.InvoiceDocument;
- import ssc.applications.org.documents.EmploymentDocument;
- import ssc.applications.org.documents.ProposalDocument;
- import ssc.applications.scp.documents.overtimeProposal.OvertimeProposalDocument;
- import ssc.applications.scp.documents.reportTemplate.ReportTemplate;
- import ssc.applications.scp.documents.workSchedule.WorkScheduleDocument;
- import ssc.components.documents.PrimitiveDocument;
- import ssc.scripts.Scripts;
- import com.google.gson.ExclusionStrategy;
- import com.google.gson.FieldAttributes;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.google.gson.JsonDeserializationContext;
- import com.google.gson.JsonDeserializer;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonParseException;
- import com.ibm.xsp.webapp.DesignerFacesServlet;
- import floppy.Master;
- public class DocumentsServlet extends DesignerFacesServlet
- {
- private static final long serialVersionUID = 6907675674528143405L;
- private String details1;
- @Override
- @SuppressWarnings({ "static-access", "unchecked" })
- public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException
- {
- System.out.println("================================DOCUMENT SERVLET START");
- try
- {
- HttpServletRequest req = (HttpServletRequest)servletRequest;
- HttpServletResponse res = (HttpServletResponse)servletResponse;
- ServletOutputStream out = res.getOutputStream();
- FacesContext context = this.getFacesContext(req, res);
- String[] url = req.getPathInfo().split("/", 0);
- List<String> parameters = new ArrayList<String>(Arrays.asList(url));
- parameters.remove(0); parameters.remove(0); parameters.remove(0);
- String[] documentInfo = parameters.get(0).split("\\.");
- String tag = documentInfo[0];
- String form = documentInfo[1];
- String unid = documentInfo[2];
- String action = documentInfo[3];
- String details1 = ""; // wykorzystywane przy POST SAVE jako rodzaj poprzedniej akcji SAVE, SENDTOACCEPT, ACCCEPT/REJECT, VALIDATION
- String details2 = "";
- if(documentInfo.length > 4)
- details1 = documentInfo[4];
- if(documentInfo.length > 5)
- details2 = documentInfo[5];
- System.out.println("Url " + parameters);
- System.out.println("tag: " + tag);
- System.out.println("form: " + form);
- System.out.println("unid: " + unid);
- System.out.println("action: " + action);
- System.out.println("details1: " + details1);
- System.out.println("details2: " + details2);
- if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_NEW) || action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_OPEN)) {
- Database db = Master.getDB(tag);
- Document doc;
- if(action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_OPEN) /*&& !(form.equalsIgnoreCase("Notatka"))*/)
- doc = db.getDocumentByUNID(unid);
- else
- doc = db.createDocument();
- Constructor constructor = null;
- if (tag.equalsIgnoreCase("faktury"))
- {
- if (form.equalsIgnoreCase("Dokument"))
- {
- constructor = getClass().forName("ssc.applications.invoices.documents.invoice.InvoiceDocument").getConstructor(Document.class);
- }
- }
- else if(tag.equalsIgnoreCase("scp"))
- {
- if (form.equalsIgnoreCase("harm"))
- {
- constructor = getClass().forName("ssc.applications.scp.documents.workSchedule.WorkScheduleDocument").getConstructor(Document.class);
- }
- else if (form.equalsIgnoreCase("WGN"))
- {
- constructor = getClass().forName("ssc.applications.scp.documents.overtimeProposal.OvertimeProposalDocument").getConstructor(Document.class);
- }
- else if (form.equalsIgnoreCase("RT"))
- {
- constructor = getClass().forName("ssc.applications.scp.documents.reportTemplate.ReportTemplate").getConstructor(Document.class);
- }
- }
- else if(tag.equalsIgnoreCase("hr"))
- {
- if (form.equalsIgnoreCase("hr"))
- {
- constructor = getClass().forName("ssc.applications.hr.documents.PersonDocument").getConstructor(Document.class);
- }
- else if (form.equalsIgnoreCase("scheme"))
- {
- constructor = getClass().forName("ssc.applications.hr.documents.SchemeDocument").getConstructor(Document.class);
- }
- } else if(tag.equalsIgnoreCase("org")) {
- if (form.equalsIgnoreCase("HR")) {
- constructor = getClass().forName("ssc.applications.org.documents.PersonDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("Zatrudnienie")) {
- constructor = getClass().forName("ssc.applications.org.documents.EmploymentDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("Wniosek")) {
- constructor = getClass().forName("ssc.applications.org.documents.ProposalDocument").getConstructor(Document.class);
- }
- }
- else if(tag.equalsIgnoreCase("urlopy")) {
- if (form.equalsIgnoreCase("Urlop")) {
- constructor = getClass().forName("ssc.applications.holidays.documents.ProposalDocument").getConstructor(Document.class);
- }
- } else if(tag.equalsIgnoreCase("korespondencja")) {
- if (form.equalsIgnoreCase("Dokument")) {
- constructor = getClass().forName("ssc.applications.correspondences.documents.CorrespondencesDocument").getConstructor(Document.class);
- }
- } else if(tag.equalsIgnoreCase("crm")) {
- if (form.equalsIgnoreCase("Firma")) {
- constructor = getClass().forName("ssc.applications.clients.documents.ContractorDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("Osoba")) {
- constructor = getClass().forName("ssc.applications.clients.documents.ContactPersonDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("Projekt")) {
- constructor = getClass().forName("ssc.applications.clients.documents.projects.ProjectDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("PodProjekt")) {
- constructor = getClass().forName("ssc.applications.clients.documents.projects.SubProjectDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("Notatka")) {
- constructor = getClass().forName("ssc.applications.clients.documents.NoteDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("Telefon")) {
- constructor = getClass().forName("ssc.applications.clients.documents.PhoneCallDocument").getConstructor(Document.class);
- } else if(form.equalsIgnoreCase("Korespondencja")) {
- constructor = getClass().forName("ssc.applications.clients.documents.CorrespondenceDocument").getConstructor(Document.class);
- } else if(form.equalsIgnoreCase("Spotkanie")) {
- constructor = getClass().forName("ssc.applications.clients.documents.MeetingDocument").getConstructor(Document.class);
- } else if(form.equalsIgnoreCase("Spotkanie_Raport")) {
- constructor = getClass().forName("ssc.applications.clients.documents.ReportDocument").getConstructor(Document.class);
- } else if(form.equalsIgnoreCase("Zapytanie")) {
- constructor = getClass().forName("ssc.applications.clients.documents.QuestionDocument").getConstructor(Document.class);
- } else if(form.equalsIgnoreCase("Oferta")) {
- constructor = getClass().forName("ssc.applications.clients.documents.OfferDocument").getConstructor(Document.class);
- }
- } else if(tag.equalsIgnoreCase("delegacje")) {
- if (form.equalsIgnoreCase("ZPW")) {
- constructor = getClass().forName("ssc.applications.delegations.documents.group.GroupProposalDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("PW")) {
- constructor = getClass().forName("ssc.applications.delegations.documents.single.SingleProposalDocument").getConstructor(Document.class);
- }
- } else if(tag.equalsIgnoreCase("zaliczki")) {
- if (form.equalsIgnoreCase("WZ")) {
- constructor = getClass().forName("ssc.applications.advences.documents.ProposalDocument").getConstructor(Document.class);
- } else if (form.equalsIgnoreCase("RZ")) {
- constructor = getClass().forName("ssc.applications.advences.documents.SettlementDocument").getConstructor(Document.class);
- }
- }
- if (constructor != null) {
- PrimitiveDocument obj = (PrimitiveDocument) constructor.newInstance(doc);
- obj.setFromWeb(true);
- if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_NEW)) {
- if (tag.equalsIgnoreCase("org") && form.equalsIgnoreCase("Zatrudnienie")) {
- ssc.applications.org.documents.EmploymentDocument employmentDoc = (ssc.applications.org.documents.EmploymentDocument) obj;
- employmentDoc.setParentUNID(details1);
- employmentDoc.setEmploymentUNID(details2);
- } else if (tag.equalsIgnoreCase("crm")) {
- if(form.equalsIgnoreCase("Osoba")) {
- ssc.applications.clients.documents.ContactPersonDocument contractorDocument = (ssc.applications.clients.documents.ContactPersonDocument) obj;
- contractorDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Projekt")) {
- ssc.applications.clients.documents.projects.ProjectDocument contractorDocument = (ssc.applications.clients.documents.projects.ProjectDocument) obj;
- contractorDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("PodProjekt")) {
- ssc.applications.clients.documents.projects.SubProjectDocument contractorDocument = (ssc.applications.clients.documents.projects.SubProjectDocument) obj;
- contractorDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Telefon")) {
- ssc.applications.clients.documents.PhoneCallDocument phoneDocument = (ssc.applications.clients.documents.PhoneCallDocument) obj;
- phoneDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Notatka")) {
- ssc.applications.clients.documents.NoteDocument noteDoc = (ssc.applications.clients.documents.NoteDocument) obj;
- noteDoc.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Korespondencja")){
- ssc.applications.clients.documents.CorrespondenceDocument correspondenceDocument = (ssc.applications.clients.documents.CorrespondenceDocument) obj;
- correspondenceDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Spotkanie")){
- ssc.applications.clients.documents.MeetingDocument meetingDocument = (ssc.applications.clients.documents.MeetingDocument) obj;
- meetingDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Spotkanie_Raport")){
- ssc.applications.clients.documents.ReportDocument reportDocument = (ssc.applications.clients.documents.ReportDocument) obj;
- reportDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Zapytanie")){
- ssc.applications.clients.documents.QuestionDocument questionDocument = (ssc.applications.clients.documents.QuestionDocument) obj;
- questionDocument.setParentUNID(details1);
- } else if (form.equalsIgnoreCase("Oferta")){
- ssc.applications.clients.documents.OfferDocument offerDocument = (ssc.applications.clients.documents.OfferDocument) obj;
- offerDocument.setParentUNID(details1);
- }
- }
- if(tag.equalsIgnoreCase("korespondencja")){
- ssc.applications.correspondences.documents.CorrespondencesDocument correspondencesDocument = (ssc.applications.correspondences.documents.CorrespondencesDocument) obj;
- if(details1.equalsIgnoreCase("in"))
- {
- correspondencesDocument.setDirection("in");
- }
- else {
- correspondencesDocument.setDirection("out");
- }
- }
- }
- if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_OPEN)) {
- if (tag.equalsIgnoreCase("scp") && form.equalsIgnoreCase("harm")) {
- } else {
- obj.loadDataFromDocument();
- }
- } else {
- obj.createDocument(true, true);
- }
- GsonBuilder gBuilder = getSenderGsonBuilder();
- Gson gson = gBuilder.create();
- out.write(gson.toJson(obj).getBytes("UTF-8"));
- res.setStatus(200);
- }
- } else if (
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_SAVE) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_POSTSAVE) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_REMOVETOTRASH) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_SENDTOACCEPT) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_ACCEPTREJECTLEVELVALIDATION) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_ACCEPTREJECTLEVEL) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_VALIDATION) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_CHANGEORGANIZATIONUNIT) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_RELOADACCEPTPATH) ||
- action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_CHANGEACCEPTPATH)
- ) {
- GsonBuilder gBuilder = getReciverGsonBuilder();
- Gson gson = gBuilder.create();
- StringBuffer requestBody = new StringBuffer();
- String line = "";
- try
- {
- BufferedReader reader = servletRequest.getReader();
- while ((line = reader.readLine()) != null)
- requestBody.append(line);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- PrimitiveDocument document = null;
- if (tag.equalsIgnoreCase("faktury"))
- {
- if (form.equalsIgnoreCase("Dokument"))
- {
- document = gson.fromJson(requestBody.toString(), InvoiceDocument.class);
- }
- }
- else if(tag.equalsIgnoreCase("scp"))
- {
- if (form.equalsIgnoreCase("harm"))
- {
- document = gson.fromJson(requestBody.toString(), WorkScheduleDocument.class);
- }
- else if (form.equalsIgnoreCase("WGN"))
- {
- document = gson.fromJson(requestBody.toString(), OvertimeProposalDocument.class);
- }
- else if (form.equalsIgnoreCase("RT"))
- {
- document = gson.fromJson(requestBody.toString(), ReportTemplate.class);
- }
- }
- else if(tag.equalsIgnoreCase("hr"))
- {
- if (form.equalsIgnoreCase("hr"))
- {
- document = gson.fromJson(requestBody.toString(), PersonDocument.class);
- }
- if (form.equalsIgnoreCase("scheme"))
- {
- document = gson.fromJson(requestBody.toString(), SchemeDocument.class);
- }
- } else if(tag.equalsIgnoreCase("org")) {
- if (form.equalsIgnoreCase("HR")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.org.documents.PersonDocument"));
- } else if (form.equalsIgnoreCase("Zatrudnienie")) {
- document = gson.fromJson(requestBody.toString(), EmploymentDocument.class);
- } else if (form.equalsIgnoreCase("Wniosek")) {
- document = gson.fromJson(requestBody.toString(), ProposalDocument.class);
- }
- }
- else if(tag.equalsIgnoreCase("urlopy"))
- {
- if (form.equalsIgnoreCase("Urlop"))
- {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.holidays.documents.ProposalDocument"));
- }
- } else if(tag.equalsIgnoreCase("korespondencja")) {
- if (form.equalsIgnoreCase("Dokument")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.correspondences.documents.CorrespondencesDocument"));
- }
- } else if(tag.equalsIgnoreCase("crm")) {
- if (form.equalsIgnoreCase("Firma")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.ContractorDocument"));
- } else if (form.equalsIgnoreCase("Osoba")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.ContactPersonDocument"));
- } else if (form.equalsIgnoreCase("Projekt")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.projects.ProjectDocument"));
- } else if (form.equalsIgnoreCase("PodProjekt")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.projects.SubProjectDocument"));
- } else if (form.equalsIgnoreCase("Notatka")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.NoteDocument"));
- } else if (form.equalsIgnoreCase("Telefon")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.PhoneCallDocument"));
- } else if (form.equalsIgnoreCase("Korespondencja")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.CorrespondenceDocument"));
- } else if (form.equalsIgnoreCase("Spotkanie")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.MeetingDocument"));
- } else if (form.equalsIgnoreCase("Spotkanie_Raport")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.ReportDocument"));
- } else if (form.equalsIgnoreCase("Zapytanie")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.QuestionDocument"));
- } else if (form.equalsIgnoreCase("Oferta")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.clients.documents.OfferDocument"));
- }
- } else if (tag.equalsIgnoreCase("delegacje")) {
- if (form.equalsIgnoreCase("ZPW")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.delegations.documents.group.GroupProposalDocument"));
- } else if (form.equalsIgnoreCase("PW")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.delegations.documents.single.SingleProposalDocument"));
- }
- } else if(tag.equalsIgnoreCase("zaliczki")) {
- if (form.equalsIgnoreCase("WZ")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.advences.documents.ProposalDocument"));
- } else if (form.equalsIgnoreCase("RZ")) {
- document = (PrimitiveDocument) gson.fromJson(requestBody.toString(), Class.forName("ssc.applications.advences.documents.SettlementDocument"));
- }
- }
- if (document != null) {
- // Ustawiamy zmienną swiadczącą że zmiana została wykonana z poziomu dokumentu
- document.setFromWeb(true);
- if (!unid.equals("undefined")) {
- if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_CHANGEACCEPTPATH)) {
- Database db = Master.getDB(tag, true, true);
- document.setDoc(db.getDocumentByUNID(unid));
- } else {
- Database db = Master.getDB(tag);
- document.setDoc(db.getDocumentByUNID(unid));
- }
- }
- Boolean processed = false;
- if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_SAVE)) {
- if (document.save()) {
- processed = true;
- }
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_POSTSAVE)) {
- document.postSave(details1);
- // Po zapisie indeksujemy bazę
- document.getParentApplication().indexingDatabase();
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_REMOVETOTRASH)) {
- document.removeToTrash(null, true, Scripts.getUser().getLotusName());
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_SENDTOACCEPT)) {
- if (document.sendToAccept()) {
- processed = true;
- }
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_ACCEPTREJECTLEVELVALIDATION)) {
- if (document.acceptRejectLevel(true)) {
- processed = true;
- }
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_ACCEPTREJECTLEVEL)) {
- if (document.acceptRejectLevel(false)) {
- processed = true;
- }
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_VALIDATION)) {
- document.validation(details1.toUpperCase(), true);
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_CHANGEORGANIZATIONUNIT)) {
- document.changeOrganizationUnit();
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_RELOADACCEPTPATH)) {
- document.reloadAcceptPath();
- } else if (action.equalsIgnoreCase(PrimitiveDocument.DOCUMENT_ACTION_CHANGEACCEPTPATH)) {
- document.changeAcceptPath();
- }
- if (processed) {
- document.restart();
- //PrimitiveDocument tmpDocument = PrimitiveDocument.getDocumentInstance(document.getApplicationTag(), document.getForm(), document.getUNID());
- //tmpDocument.loadDataFromDocument();
- }
- gBuilder = getSenderGsonBuilder();
- gson = gBuilder.create();
- out.write(gson.toJson(document).getBytes("UTF-8"));
- document.recycle();
- res.setStatus(200);
- }
- }
- res.flushBuffer();
- context.release();
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- System.out.println("================================DOCUMENT SERVLET END");
- }
- public String getDetails1()
- {
- //include validation, logic, logging or whatever you like here
- return this.details1;
- }
- private GsonBuilder getSenderGsonBuilder()
- {
- ExclusionStrategy strategy = new SpecificClassExclusionStrategy(Document.class);
- return new GsonBuilder()
- .addDeserializationExclusionStrategy(strategy)
- .excludeFieldsWithModifiers(java.lang.reflect.Modifier.TRANSIENT)
- .setDateFormat("yyyy-MM-dd'T'HH:mm:ss");
- }
- private GsonBuilder getReciverGsonBuilder()
- {
- ExclusionStrategy strategy = new SpecificClassExclusionStrategy(Document.class);
- return new GsonBuilder()
- .addDeserializationExclusionStrategy(strategy)
- .registerTypeAdapter(Date.class, new DateDeserializer());
- //.registerTypeAdapter(Double.class, new DoubleDeserializer());
- }
- private static class SpecificClassExclusionStrategy implements ExclusionStrategy
- {
- private final Class<?> excludedThisClass;
- public SpecificClassExclusionStrategy(Class<?> excludedThisClass)
- {
- this.excludedThisClass = excludedThisClass;
- }
- public boolean shouldSkipClass(Class<?> clazz)
- {
- return excludedThisClass.equals(clazz);
- }
- public boolean shouldSkipField(FieldAttributes f)
- {
- return excludedThisClass.equals(f.getDeclaredClass());
- }
- }
- private class DoubleDeserializer implements JsonDeserializer<Double>
- {
- public Double deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
- String string = element.getAsString();
- //System.out.println("DoubleDeserializer: " + string);
- return(Double.valueOf(string));
- }
- }
- private class DateDeserializer implements JsonDeserializer<Date>
- {
- public Date deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException
- {
- String date = element.getAsString();
- SimpleDateFormat formatter = null;
- if (date.length() == 21) {
- formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
- } else if (date.length() == 19) {
- formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
- date = date.replace(" ", "T");
- } else if (date.length() == 10) {
- formatter = new SimpleDateFormat("yyyy-MM-dd");
- } else if (date.length() == 5) {
- formatter = new SimpleDateFormat("HH:mm");
- }
- if (formatter != null) {
- try {
- //System.out.println(formatter.parse(date));
- return formatter.parse(date);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement