Introduced XidynException usage. Fixed Factory get.
This commit is contained in:
parent
d0cfebfa3a
commit
4eb8aa4c83
21 changed files with 628 additions and 204 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2016,2017 Christian Pierre MOMON
|
* Copyright (C) 2016-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -24,6 +24,7 @@ import java.util.Locale;
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
import fr.devinsy.xidyn.presenters.DomPresenter;
|
import fr.devinsy.xidyn.presenters.DomPresenter;
|
||||||
import fr.devinsy.xidyn.presenters.FilePresenter;
|
import fr.devinsy.xidyn.presenters.FilePresenter;
|
||||||
|
@ -148,10 +149,10 @@ public class Page extends TagDataManager
|
||||||
* Dynamize.
|
* Dynamize.
|
||||||
*
|
*
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer dynamize() throws Exception
|
public StringBuffer dynamize() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -174,10 +175,10 @@ public class Page extends TagDataManager
|
||||||
* Dynamize to string.
|
* Dynamize to string.
|
||||||
*
|
*
|
||||||
* @return the string
|
* @return the string
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public String dynamizeToString() throws Exception
|
public String dynamizeToString() throws XidynException
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
@ -203,10 +204,10 @@ public class Page extends TagDataManager
|
||||||
* the id
|
* the id
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public void include(final String id, final Page source) throws Exception
|
public void include(final String id, final Page source) throws XidynException
|
||||||
{
|
{
|
||||||
if ((id != null) && (source != null))
|
if ((id != null) && (source != null))
|
||||||
{
|
{
|
||||||
|
@ -251,10 +252,10 @@ public class Page extends TagDataManager
|
||||||
* the id
|
* the id
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public void includePage(final String id, final CharSequence source) throws Exception
|
public void includePage(final String id, final CharSequence source) throws XidynException
|
||||||
{
|
{
|
||||||
if ((id != null) && (source != null))
|
if ((id != null) && (source != null))
|
||||||
{
|
{
|
||||||
|
@ -271,10 +272,10 @@ public class Page extends TagDataManager
|
||||||
* the id
|
* the id
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public void includePage(final String id, final Document source) throws Exception
|
public void includePage(final String id, final Document source) throws XidynException
|
||||||
{
|
{
|
||||||
if ((id != null) && (source != null))
|
if ((id != null) && (source != null))
|
||||||
{
|
{
|
||||||
|
@ -291,10 +292,10 @@ public class Page extends TagDataManager
|
||||||
* the id
|
* the id
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public void includePage(final String id, final File source) throws Exception
|
public void includePage(final String id, final File source) throws XidynException
|
||||||
{
|
{
|
||||||
if ((id != null) && (source != null))
|
if ((id != null) && (source != null))
|
||||||
{
|
{
|
||||||
|
@ -311,10 +312,10 @@ public class Page extends TagDataManager
|
||||||
* the id
|
* the id
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @throws Exception
|
* @throws throws
|
||||||
* the exception
|
* XidynException the exception
|
||||||
*/
|
*/
|
||||||
public void includePage(final String id, final URL source) throws Exception
|
public void includePage(final String id, final URL source) throws XidynException
|
||||||
{
|
{
|
||||||
if ((id != null) && (source != null))
|
if ((id != null) && (source != null))
|
||||||
{
|
{
|
||||||
|
@ -350,10 +351,10 @@ public class Page extends TagDataManager
|
||||||
* Last version.
|
* Last version.
|
||||||
*
|
*
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer lastVersion() throws Exception
|
public StringBuffer lastVersion() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ import java.io.File;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
|
|
||||||
import fr.devinsy.strings.StringsUtils;
|
import fr.devinsy.strings.StringsUtils;
|
||||||
|
@ -35,6 +37,8 @@ import fr.devinsy.xidyn.utils.cache.Cache;
|
||||||
*/
|
*/
|
||||||
public class PageFactory
|
public class PageFactory
|
||||||
{
|
{
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(PageFactory.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* http://thecodersbreakfast.net/index.php?post/2008/02/25/26-de-la-bonne-
|
* http://thecodersbreakfast.net/index.php?post/2008/02/25/26-de-la-bonne-
|
||||||
* implementation-du-singleton-en-java
|
* implementation-du-singleton-en-java
|
||||||
|
@ -183,7 +187,7 @@ public class PageFactory
|
||||||
{
|
{
|
||||||
Page result;
|
Page result;
|
||||||
|
|
||||||
String key = StringsUtils.toStringSeparatedBy(keys, "-").toString();
|
String key = StringsUtils.toStringSeparatedBy(keys, "-");
|
||||||
|
|
||||||
result = this.cache.get(key);
|
result = this.cache.get(key);
|
||||||
if (result == null)
|
if (result == null)
|
||||||
|
@ -209,12 +213,12 @@ public class PageFactory
|
||||||
{
|
{
|
||||||
Page result;
|
Page result;
|
||||||
|
|
||||||
String key = StringsUtils.toStringSeparatedBy(keys, "-").toString();
|
String key = StringsUtils.toStringSeparatedBy(keys, "-");
|
||||||
|
|
||||||
result = this.cache.get(key);
|
result = this.cache.get(key);
|
||||||
if (result == null)
|
if (result == null)
|
||||||
{
|
{
|
||||||
result = get(source);
|
result = create(source);
|
||||||
this.cache.put(key, result);
|
this.cache.put(key, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,12 +239,12 @@ public class PageFactory
|
||||||
{
|
{
|
||||||
Page result;
|
Page result;
|
||||||
|
|
||||||
String key = StringsUtils.toStringSeparatedBy(keys, "-").toString();
|
String key = StringsUtils.toStringSeparatedBy(keys, "-");
|
||||||
|
|
||||||
result = this.cache.get(key);
|
result = this.cache.get(key);
|
||||||
if (result == null)
|
if (result == null)
|
||||||
{
|
{
|
||||||
result = get(source);
|
result = create(source);
|
||||||
this.cache.put(key, result);
|
this.cache.put(key, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,12 +265,12 @@ public class PageFactory
|
||||||
{
|
{
|
||||||
Page result;
|
Page result;
|
||||||
|
|
||||||
String key = StringsUtils.toStringSeparatedBy(keys, "-").toString();
|
String key = StringsUtils.toStringSeparatedBy(keys, "-");
|
||||||
|
|
||||||
result = this.cache.get(key);
|
result = this.cache.get(key);
|
||||||
if (result == null)
|
if (result == null)
|
||||||
{
|
{
|
||||||
result = get(source);
|
result = create(source);
|
||||||
this.cache.put(key, result);
|
this.cache.put(key, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -24,6 +24,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
import fr.devinsy.xidyn.utils.XidynUtils;
|
import fr.devinsy.xidyn.utils.XidynUtils;
|
||||||
|
|
||||||
|
@ -33,6 +34,7 @@ import fr.devinsy.xidyn.utils.XidynUtils;
|
||||||
public class DomPresenter implements Presenter
|
public class DomPresenter implements Presenter
|
||||||
{
|
{
|
||||||
private static Logger logger = LoggerFactory.getLogger(DomPresenter.class);
|
private static Logger logger = LoggerFactory.getLogger(DomPresenter.class);
|
||||||
|
|
||||||
private Document dom;
|
private Document dom;
|
||||||
private boolean isOutdated;
|
private boolean isOutdated;
|
||||||
private StringBuffer defaultHtmlTarget;
|
private StringBuffer defaultHtmlTarget;
|
||||||
|
@ -61,7 +63,7 @@ public class DomPresenter implements Presenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize() throws Exception
|
public StringBuffer dynamize() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -81,7 +83,7 @@ public class DomPresenter implements Presenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize(final TagDataManager data) throws Exception
|
public StringBuffer dynamize(final TagDataManager data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -94,7 +96,7 @@ public class DomPresenter implements Presenter
|
||||||
String errorMessage = "source not defined";
|
String errorMessage = "source not defined";
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage);
|
throw new XidynException(errorMessage);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -163,7 +165,7 @@ public class DomPresenter implements Presenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isOutdated() throws Exception
|
public boolean isOutdated() throws XidynException
|
||||||
{
|
{
|
||||||
boolean result;
|
boolean result;
|
||||||
|
|
||||||
|
@ -202,7 +204,7 @@ public class DomPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void update() throws Exception
|
public void update() throws XidynException
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
package fr.devinsy.xidyn.presenters;
|
package fr.devinsy.xidyn.presenters;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
@ -32,6 +33,7 @@ import org.w3c.dom.NamedNodeMap;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.SimpleTagData;
|
import fr.devinsy.xidyn.data.SimpleTagData;
|
||||||
import fr.devinsy.xidyn.data.TagAttributes;
|
import fr.devinsy.xidyn.data.TagAttributes;
|
||||||
import fr.devinsy.xidyn.data.TagData;
|
import fr.devinsy.xidyn.data.TagData;
|
||||||
|
@ -59,12 +61,19 @@ public class DomPresenterCore
|
||||||
* the doc
|
* the doc
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static void dynamize(final Appendable result, final Document doc, final TagDataListById data) throws Exception
|
public static void dynamize(final Appendable result, final Document doc, final TagDataListById data) throws XidynException
|
||||||
{
|
{
|
||||||
process(result, doc, data);
|
try
|
||||||
|
{
|
||||||
|
process(result, doc, data);
|
||||||
|
}
|
||||||
|
catch (IOException exception)
|
||||||
|
{
|
||||||
|
throw new XidynException("IO Error detected: " + exception.getMessage(), exception);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,10 +85,10 @@ public class DomPresenterCore
|
||||||
* the doc
|
* the doc
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static void dynamize(final Appendable result, final Document doc, final TagDataManager data) throws Exception
|
public static void dynamize(final Appendable result, final Document doc, final TagDataManager data) throws XidynException
|
||||||
{
|
{
|
||||||
dynamize(result, doc, data.getIdsDataById());
|
dynamize(result, doc, data.getIdsDataById());
|
||||||
}
|
}
|
||||||
|
@ -92,10 +101,10 @@ public class DomPresenterCore
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static StringBuffer dynamize(final Document doc, final TagDataListById data) throws Exception
|
public static StringBuffer dynamize(final Document doc, final TagDataListById data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -115,10 +124,10 @@ public class DomPresenterCore
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static StringBuffer dynamize(final Document doc, final TagDataManager data) throws Exception
|
public static StringBuffer dynamize(final Document doc, final TagDataManager data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -298,10 +307,10 @@ public class DomPresenterCore
|
||||||
* the node
|
* the node
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void process(final Appendable result, final Node node, final TagDataListById data) throws Exception
|
private static void process(final Appendable result, final Node node, final TagDataListById data) throws IOException
|
||||||
{
|
{
|
||||||
process(result, node, data, "");
|
process(result, node, data, "");
|
||||||
}
|
}
|
||||||
|
@ -317,10 +326,10 @@ public class DomPresenterCore
|
||||||
* the datas
|
* the datas
|
||||||
* @param suffix
|
* @param suffix
|
||||||
* the suffix
|
* the suffix
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void process(final Appendable result, final Node node, final TagDataListById datas, final String suffix) throws Exception
|
private static void process(final Appendable result, final Node node, final TagDataListById datas, final String suffix) throws IOException
|
||||||
{
|
{
|
||||||
logger.debug("process - started");
|
logger.debug("process - started");
|
||||||
String TRANSITIONAL_DTD = "xhtml1-transitional.dtd";
|
String TRANSITIONAL_DTD = "xhtml1-transitional.dtd";
|
||||||
|
@ -579,10 +588,10 @@ public class DomPresenterCore
|
||||||
* the node
|
* the node
|
||||||
* @param datas
|
* @param datas
|
||||||
* the datas
|
* the datas
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void processChildren(final Appendable result, final Node node, final TagDataListById datas) throws Exception
|
private static void processChildren(final Appendable result, final Node node, final TagDataListById datas) throws IOException
|
||||||
{
|
{
|
||||||
processChildren(result, node, datas, "");
|
processChildren(result, node, datas, "");
|
||||||
}
|
}
|
||||||
|
@ -598,10 +607,10 @@ public class DomPresenterCore
|
||||||
* the datas
|
* the datas
|
||||||
* @param suffix
|
* @param suffix
|
||||||
* the suffix
|
* the suffix
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void processChildren(final Appendable result, final Node node, final TagDataListById datas, final String suffix) throws Exception
|
private static void processChildren(final Appendable result, final Node node, final TagDataListById datas, final String suffix) throws IOException
|
||||||
{
|
{
|
||||||
// Get the iteration strategy.
|
// Get the iteration strategy.
|
||||||
SimpleTagData.IterationStrategy strategy;
|
SimpleTagData.IterationStrategy strategy;
|
||||||
|
@ -738,10 +747,10 @@ public class DomPresenterCore
|
||||||
* the node
|
* the node
|
||||||
* @param datas
|
* @param datas
|
||||||
* the datas
|
* the datas
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void processElementBasically(final Appendable result, final Node node, final TagDataListById datas) throws Exception
|
private static void processElementBasically(final Appendable result, final Node node, final TagDataListById datas) throws IOException
|
||||||
{
|
{
|
||||||
processElementBasically(result, node, datas, "");
|
processElementBasically(result, node, datas, "");
|
||||||
}
|
}
|
||||||
|
@ -757,10 +766,10 @@ public class DomPresenterCore
|
||||||
* the datas
|
* the datas
|
||||||
* @param suffix
|
* @param suffix
|
||||||
* the suffix
|
* the suffix
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void processElementBasically(final Appendable result, final Node node, final TagDataListById datas, final String suffix) throws Exception
|
private static void processElementBasically(final Appendable result, final Node node, final TagDataListById datas, final String suffix) throws IOException
|
||||||
{
|
{
|
||||||
logger.debug("processElementBasically - started [{}]", node.getNodeName());
|
logger.debug("processElementBasically - started [{}]", node.getNodeName());
|
||||||
|
|
||||||
|
@ -806,10 +815,10 @@ public class DomPresenterCore
|
||||||
* The ID.
|
* The ID.
|
||||||
* @param datas
|
* @param datas
|
||||||
* the datas
|
* the datas
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void processElementWithId(final Appendable result, final Node node, final NamedNodeMap attrs, final Node idAttr, final TagDataListById datas) throws Exception
|
private static void processElementWithId(final Appendable result, final Node node, final NamedNodeMap attrs, final Node idAttr, final TagDataListById datas) throws IOException
|
||||||
{
|
{
|
||||||
processElementWithId(result, node, attrs, idAttr, datas, "");
|
processElementWithId(result, node, attrs, idAttr, datas, "");
|
||||||
}
|
}
|
||||||
|
@ -830,10 +839,10 @@ public class DomPresenterCore
|
||||||
* the datas
|
* the datas
|
||||||
* @param suffix
|
* @param suffix
|
||||||
* the suffix
|
* the suffix
|
||||||
* @throws Exception
|
* @throws IOException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
private static void processElementWithId(final Appendable result, final Node node, final NamedNodeMap attrs, final Node idAttr, final TagDataListById datas, final String suffix) throws Exception
|
private static void processElementWithId(final Appendable result, final Node node, final NamedNodeMap attrs, final Node idAttr, final TagDataListById datas, final String suffix) throws IOException
|
||||||
{
|
{
|
||||||
String tag = node.getNodeName();
|
String tag = node.getNodeName();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -19,12 +19,14 @@
|
||||||
package fr.devinsy.xidyn.presenters;
|
package fr.devinsy.xidyn.presenters;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
import fr.devinsy.xidyn.utils.XidynUtils;
|
import fr.devinsy.xidyn.utils.XidynUtils;
|
||||||
|
|
||||||
|
@ -73,7 +75,7 @@ public class FilePresenter extends StringPresenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize() throws Exception
|
public StringBuffer dynamize() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -93,7 +95,7 @@ public class FilePresenter extends StringPresenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize(final TagDataManager data) throws Exception
|
public StringBuffer dynamize(final TagDataManager data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -163,7 +165,7 @@ public class FilePresenter extends StringPresenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isOutdated() throws Exception
|
public boolean isOutdated() throws XidynException
|
||||||
{
|
{
|
||||||
boolean result;
|
boolean result;
|
||||||
|
|
||||||
|
@ -246,36 +248,40 @@ public class FilePresenter extends StringPresenter
|
||||||
setSource(file);
|
setSource(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/* (non-Javadoc)
|
||||||
* Update.
|
* @see fr.devinsy.xidyn.presenters.StringPresenter#update()
|
||||||
*
|
|
||||||
* @throws Exception
|
|
||||||
* the exception
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void update() throws Exception
|
public void update() throws XidynException
|
||||||
{
|
{
|
||||||
//
|
try
|
||||||
if (this.source == null)
|
|
||||||
{
|
{
|
||||||
String errorMessage = "source not defined";
|
//
|
||||||
logger.error(errorMessage);
|
if (this.source == null)
|
||||||
throw new NullPointerException(errorMessage);
|
|
||||||
}
|
|
||||||
else if (!this.source.exists())
|
|
||||||
{
|
|
||||||
String errorMessage = "source file defined but not found (" + this.sourceFilePathname + ")";
|
|
||||||
logger.error(errorMessage);
|
|
||||||
throw new Exception(errorMessage);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
long currentTime = this.source.lastModified();
|
|
||||||
if ((super.getSource() == null) || (this.sourceTime != currentTime))
|
|
||||||
{
|
{
|
||||||
super.setSource(XidynUtils.load(this.source));
|
String errorMessage = "source not defined";
|
||||||
this.sourceTime = currentTime;
|
logger.error(errorMessage);
|
||||||
|
throw new NullPointerException(errorMessage);
|
||||||
}
|
}
|
||||||
|
else if (!this.source.exists())
|
||||||
|
{
|
||||||
|
String errorMessage = "source file defined but not found (" + this.sourceFilePathname + ")";
|
||||||
|
logger.error(errorMessage);
|
||||||
|
throw new XidynException(errorMessage);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
long currentTime = this.source.lastModified();
|
||||||
|
if ((super.getSource() == null) || (this.sourceTime != currentTime))
|
||||||
|
{
|
||||||
|
super.setSource(XidynUtils.load(this.source));
|
||||||
|
this.sourceTime = currentTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException exception)
|
||||||
|
{
|
||||||
|
throw new XidynException(exception);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -21,6 +21,8 @@ package fr.devinsy.xidyn.presenters;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class FilePresentersProxy.
|
* The Class FilePresentersProxy.
|
||||||
*/
|
*/
|
||||||
|
@ -34,10 +36,10 @@ public class FilePresentersProxy
|
||||||
/**
|
/**
|
||||||
* Instantiates a new file presenters proxy.
|
* Instantiates a new file presenters proxy.
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
protected FilePresentersProxy() throws Exception
|
protected FilePresentersProxy() throws XidynException
|
||||||
{
|
{
|
||||||
this.presenters = new FilePresenters();
|
this.presenters = new FilePresenters();
|
||||||
}
|
}
|
||||||
|
@ -48,10 +50,10 @@ public class FilePresentersProxy
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @return the by source
|
* @return the by source
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public FilePresenter getBySource(final String source) throws Exception
|
public FilePresenter getBySource(final String source) throws XidynException
|
||||||
{
|
{
|
||||||
FilePresenter result;
|
FilePresenter result;
|
||||||
|
|
||||||
|
@ -77,10 +79,10 @@ public class FilePresentersProxy
|
||||||
* Instance.
|
* Instance.
|
||||||
*
|
*
|
||||||
* @return the file presenters proxy
|
* @return the file presenters proxy
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static FilePresentersProxy instance() throws Exception
|
public static FilePresentersProxy instance() throws XidynException
|
||||||
{
|
{
|
||||||
FilePresentersProxy result;
|
FilePresentersProxy result;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -23,6 +23,7 @@ import java.net.URL;
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -110,7 +111,7 @@ public class GenericPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize()
|
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize() throws Exception
|
public StringBuffer dynamize() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -124,7 +125,7 @@ public class GenericPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize(fr.devinsy.xidyn.data.TagDataManager)
|
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize(fr.devinsy.xidyn.data.TagDataManager)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize(final TagDataManager datas) throws Exception
|
public StringBuffer dynamize(final TagDataManager datas) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -166,7 +167,7 @@ public class GenericPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#isOutdated()
|
* @see fr.devinsy.xidyn.presenters.Presenter#isOutdated()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isOutdated() throws Exception
|
public boolean isOutdated() throws XidynException
|
||||||
{
|
{
|
||||||
boolean result;
|
boolean result;
|
||||||
|
|
||||||
|
@ -254,10 +255,10 @@ public class GenericPresenter implements Presenter
|
||||||
* @param language
|
* @param language
|
||||||
* the language
|
* the language
|
||||||
* @return the string
|
* @return the string
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public String toString(final String language) throws Exception
|
public String toString(final String language) throws XidynException
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
@ -271,7 +272,7 @@ public class GenericPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void update() throws Exception
|
public void update() throws XidynException
|
||||||
{
|
{
|
||||||
this.presenter.update();
|
this.presenter.update();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
package fr.devinsy.xidyn.presenters;
|
package fr.devinsy.xidyn.presenters;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,15 +33,14 @@ import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
*/
|
*/
|
||||||
public interface Presenter
|
public interface Presenter
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dynamize.
|
* Dynamize.
|
||||||
*
|
*
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer dynamize() throws Exception;
|
public StringBuffer dynamize() throws XidynException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dynamize.
|
* Dynamize.
|
||||||
|
@ -48,10 +48,10 @@ public interface Presenter
|
||||||
* @param datas
|
* @param datas
|
||||||
* the datas
|
* the datas
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer dynamize(final TagDataManager datas) throws Exception;
|
public StringBuffer dynamize(final TagDataManager datas) throws XidynException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the source.
|
* Gets the source.
|
||||||
|
@ -71,16 +71,16 @@ public interface Presenter
|
||||||
* Checks if is outdated.
|
* Checks if is outdated.
|
||||||
*
|
*
|
||||||
* @return true, if is outdated
|
* @return true, if is outdated
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public boolean isOutdated() throws Exception;
|
public boolean isOutdated() throws XidynException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update.
|
* Update.
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public void update() throws Exception;
|
public void update() throws XidynException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -35,6 +35,8 @@ import fr.devinsy.xidyn.utils.cache.Cache;
|
||||||
*/
|
*/
|
||||||
public class PresenterFactory
|
public class PresenterFactory
|
||||||
{
|
{
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(PresenterFactory.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* http://thecodersbreakfast.net/index.php?post/2008/02/25/26-de-la-bonne-
|
* http://thecodersbreakfast.net/index.php?post/2008/02/25/26-de-la-bonne-
|
||||||
* implementation-du-singleton-en-java
|
* implementation-du-singleton-en-java
|
||||||
|
@ -44,8 +46,6 @@ public class PresenterFactory
|
||||||
private final static PresenterFactory INSTANCE = new PresenterFactory();
|
private final static PresenterFactory INSTANCE = new PresenterFactory();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(PresenterFactory.class);
|
|
||||||
|
|
||||||
private Cache<Presenter> cache;
|
private Cache<Presenter> cache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -24,6 +24,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataListById;
|
import fr.devinsy.xidyn.data.TagDataListById;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
|
|
||||||
|
@ -49,10 +50,10 @@ public class PresenterUtils
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static StringBuffer dynamize(final Document doc, final TagDataListById data) throws Exception
|
public static StringBuffer dynamize(final Document doc, final TagDataListById data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -70,10 +71,10 @@ public class PresenterUtils
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static StringBuffer dynamize(final Document doc, final TagDataManager data) throws Exception
|
public static StringBuffer dynamize(final Document doc, final TagDataManager data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -89,10 +90,10 @@ public class PresenterUtils
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static StringBuffer dynamize(final File source) throws Exception
|
public static StringBuffer dynamize(final File source) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -112,10 +113,10 @@ public class PresenterUtils
|
||||||
* @param datas
|
* @param datas
|
||||||
* the datas
|
* the datas
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static StringBuffer dynamize(final File source, final TagDataManager datas) throws Exception
|
public static StringBuffer dynamize(final File source, final TagDataManager datas) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -128,18 +129,17 @@ public class PresenterUtils
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dynamize a string with HTML in, or with file path name in, or with URL
|
* Dynamize a string with HTML in, or with file path name in, or with URL in.
|
||||||
* in.
|
|
||||||
*
|
*
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @param datas
|
* @param datas
|
||||||
* the datas
|
* the datas
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static StringBuffer dynamize(final String source, final TagDataManager datas) throws Exception
|
public static StringBuffer dynamize(final String source, final TagDataManager datas) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -24,6 +24,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
import fr.devinsy.xidyn.utils.XidynUtils;
|
import fr.devinsy.xidyn.utils.XidynUtils;
|
||||||
|
|
||||||
|
@ -61,7 +62,7 @@ public class StringPresenter implements Presenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize() throws Exception
|
public StringBuffer dynamize() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ public class StringPresenter implements Presenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize(final TagDataManager data) throws Exception
|
public StringBuffer dynamize(final TagDataManager data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -89,7 +90,7 @@ public class StringPresenter implements Presenter
|
||||||
String errorMessage = "source not defined";
|
String errorMessage = "source not defined";
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage);
|
throw new XidynException(errorMessage);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -200,7 +201,7 @@ public class StringPresenter implements Presenter
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isOutdated() throws Exception
|
public boolean isOutdated() throws XidynException
|
||||||
{
|
{
|
||||||
boolean result;
|
boolean result;
|
||||||
|
|
||||||
|
@ -234,7 +235,7 @@ public class StringPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void update() throws Exception
|
public void update() throws XidynException
|
||||||
{
|
{
|
||||||
// Nothing to do.
|
// Nothing to do.
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -23,6 +23,7 @@ import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import fr.devinsy.util.FileTools;
|
import fr.devinsy.util.FileTools;
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,7 +59,7 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize()
|
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize() throws Exception
|
public StringBuffer dynamize() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -82,10 +83,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param locale
|
* @param locale
|
||||||
* the locale
|
* the locale
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer dynamize(final Locale locale) throws Exception
|
public StringBuffer dynamize(final Locale locale) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -113,10 +114,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param language
|
* @param language
|
||||||
* the language
|
* the language
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer dynamize(final String language) throws Exception
|
public StringBuffer dynamize(final String language) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -130,7 +131,7 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize(fr.devinsy.xidyn.data.TagDataManager)
|
* @see fr.devinsy.xidyn.presenters.Presenter#dynamize(fr.devinsy.xidyn.data.TagDataManager)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize(final TagDataManager datas) throws Exception
|
public StringBuffer dynamize(final TagDataManager datas) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -156,10 +157,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param locale
|
* @param locale
|
||||||
* the locale
|
* the locale
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer dynamize(final TagDataManager datas, final Locale locale) throws Exception
|
public StringBuffer dynamize(final TagDataManager datas, final Locale locale) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -189,10 +190,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param language
|
* @param language
|
||||||
* the language
|
* the language
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer dynamize(final TagDataManager datas, final String language) throws Exception
|
public StringBuffer dynamize(final TagDataManager datas, final String language) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -208,10 +209,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param locale
|
* @param locale
|
||||||
* the locale
|
* the locale
|
||||||
* @return the presenter
|
* @return the presenter
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public Presenter getPresenter(final Locale locale) throws Exception
|
public Presenter getPresenter(final Locale locale) throws XidynException
|
||||||
{
|
{
|
||||||
Presenter result;
|
Presenter result;
|
||||||
|
|
||||||
|
@ -239,10 +240,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param language
|
* @param language
|
||||||
* the language
|
* the language
|
||||||
* @return the presenter
|
* @return the presenter
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public Presenter getPresenter(final String language) throws Exception
|
public Presenter getPresenter(final String language) throws XidynException
|
||||||
{
|
{
|
||||||
Presenter result;
|
Presenter result;
|
||||||
|
|
||||||
|
@ -264,7 +265,7 @@ public class TranslatorPresenter implements Presenter
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new Exception("Undefined default language file.");
|
throw new XidynException("Undefined default language file.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -335,7 +336,7 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#isOutdated()
|
* @see fr.devinsy.xidyn.presenters.Presenter#isOutdated()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isOutdated() throws Exception
|
public boolean isOutdated() throws XidynException
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -346,10 +347,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param locale
|
* @param locale
|
||||||
* the locale
|
* the locale
|
||||||
* @return the string
|
* @return the string
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public String toString(final Locale locale) throws Exception
|
public String toString(final Locale locale) throws XidynException
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
@ -377,10 +378,10 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @param language
|
* @param language
|
||||||
* the language
|
* the language
|
||||||
* @return the string
|
* @return the string
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public String toString(final String language) throws Exception
|
public String toString(final String language) throws XidynException
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
@ -402,7 +403,7 @@ public class TranslatorPresenter implements Presenter
|
||||||
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
* @see fr.devinsy.xidyn.presenters.Presenter#update()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void update() throws Exception
|
public void update() throws XidynException
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -25,6 +25,7 @@ import java.net.URL;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
import fr.devinsy.xidyn.data.TagDataManager;
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
import fr.devinsy.xidyn.utils.XidynUtils;
|
import fr.devinsy.xidyn.utils.XidynUtils;
|
||||||
|
|
||||||
|
@ -76,11 +77,11 @@ public class URLPresenter extends StringPresenter
|
||||||
* No need to be synchronized.
|
* No need to be synchronized.
|
||||||
*
|
*
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize() throws Exception
|
public StringBuffer dynamize() throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -100,11 +101,11 @@ public class URLPresenter extends StringPresenter
|
||||||
* @param data
|
* @param data
|
||||||
* the data
|
* the data
|
||||||
* @return the string buffer
|
* @return the string buffer
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StringBuffer dynamize(final TagDataManager data) throws Exception
|
public StringBuffer dynamize(final TagDataManager data) throws XidynException
|
||||||
{
|
{
|
||||||
StringBuffer result;
|
StringBuffer result;
|
||||||
|
|
||||||
|
@ -204,22 +205,28 @@ public class URLPresenter extends StringPresenter
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isOutdated() throws Exception
|
public boolean isOutdated() throws XidynException
|
||||||
{
|
{
|
||||||
boolean result;
|
boolean result;
|
||||||
|
|
||||||
//
|
try
|
||||||
if (super.isOutdated())
|
|
||||||
{
|
{
|
||||||
result = true;
|
if (super.isOutdated())
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
else if (this.sourceTime == this.source.openConnection().getLastModified())
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (this.sourceTime == this.source.openConnection().getLastModified())
|
catch (IOException exception)
|
||||||
{
|
{
|
||||||
result = true;
|
throw new XidynException(exception);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -332,11 +339,11 @@ public class URLPresenter extends StringPresenter
|
||||||
/**
|
/**
|
||||||
* No need to be synchronized.
|
* No need to be synchronized.
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void update() throws Exception
|
public void update() throws XidynException
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
if (this.source == null)
|
if (this.source == null)
|
||||||
|
@ -367,7 +374,7 @@ public class URLPresenter extends StringPresenter
|
||||||
*/
|
*/
|
||||||
String errorMessage = "source file defined but not readable (" + this.source.toString() + ")";
|
String errorMessage = "source file defined but not readable (" + this.source.toString() + ")";
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
throw new Exception(errorMessage);
|
throw new XidynException(errorMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
* Copyright (C) 2006-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -43,6 +43,8 @@ import org.w3c.dom.NodeList;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class XidynUtils.
|
* The Class XidynUtils.
|
||||||
*/
|
*/
|
||||||
|
@ -89,10 +91,10 @@ public class XidynUtils
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @return the document
|
* @return the document
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static Document buildDom(final InputStream source) throws Exception
|
public static Document buildDom(final InputStream source) throws XidynException
|
||||||
{
|
{
|
||||||
Document result;
|
Document result;
|
||||||
|
|
||||||
|
@ -129,7 +131,8 @@ public class XidynUtils
|
||||||
if (errorHandler.hasError())
|
if (errorHandler.hasError())
|
||||||
{
|
{
|
||||||
// Most time, error is (with StringPresenter):
|
// Most time, error is (with StringPresenter):
|
||||||
// "Error at line 1 : Document root element "html", must match DOCTYPE root "null".
|
// "Error at line 1 : Document root element "html", must match DOCTYPE root
|
||||||
|
// "null".
|
||||||
// Error at line 1 : Document is invalid: no grammar found.
|
// Error at line 1 : Document is invalid: no grammar found.
|
||||||
// We ignore it. STU
|
// We ignore it. STU
|
||||||
logger.debug(errorHandler.toString());
|
logger.debug(errorHandler.toString());
|
||||||
|
@ -140,21 +143,21 @@ public class XidynUtils
|
||||||
String errorMessage = "Parser configuration exception: " + exception.getMessage();
|
String errorMessage = "Parser configuration exception: " + exception.getMessage();
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage, exception);
|
throw new XidynException(errorMessage, exception);
|
||||||
}
|
}
|
||||||
catch (SAXException exception)
|
catch (SAXException exception)
|
||||||
{
|
{
|
||||||
String errorMessage = "Error during SAX parsing: " + exception.getMessage();
|
String errorMessage = "Error during SAX parsing: " + exception.getMessage();
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage, exception);
|
throw new XidynException(errorMessage, exception);
|
||||||
}
|
}
|
||||||
catch (IOException exception)
|
catch (IOException exception)
|
||||||
{
|
{
|
||||||
String errorMessage = "IOError during parsing." + exception.getMessage();
|
String errorMessage = "IOError during parsing." + exception.getMessage();
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage, exception);
|
throw new XidynException(errorMessage, exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -167,10 +170,10 @@ public class XidynUtils
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @return the document
|
* @return the document
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static Document buildDom(final String source) throws Exception
|
public static Document buildDom(final String source) throws XidynException
|
||||||
{
|
{
|
||||||
Document result;
|
Document result;
|
||||||
|
|
||||||
|
@ -207,7 +210,8 @@ public class XidynUtils
|
||||||
if (errorHandler.hasError())
|
if (errorHandler.hasError())
|
||||||
{
|
{
|
||||||
// Most time, error is (with StringPresenter):
|
// Most time, error is (with StringPresenter):
|
||||||
// "Error at line 1 : Document root element "html", must match DOCTYPE root "null".
|
// "Error at line 1 : Document root element "html", must match DOCTYPE root
|
||||||
|
// "null".
|
||||||
// Error at line 1 : Document is invalid: no grammar found.
|
// Error at line 1 : Document is invalid: no grammar found.
|
||||||
// We ignore it. STU
|
// We ignore it. STU
|
||||||
logger.debug(errorHandler.toString());
|
logger.debug(errorHandler.toString());
|
||||||
|
@ -218,21 +222,21 @@ public class XidynUtils
|
||||||
String errorMessage = "Parser configuration exception: " + exception.getMessage();
|
String errorMessage = "Parser configuration exception: " + exception.getMessage();
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage, exception);
|
throw new XidynException(errorMessage, exception);
|
||||||
}
|
}
|
||||||
catch (SAXException exception)
|
catch (SAXException exception)
|
||||||
{
|
{
|
||||||
String errorMessage = "Error during SAX parsing: " + exception.getMessage();
|
String errorMessage = "Error during SAX parsing: " + exception.getMessage();
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage, exception);
|
throw new XidynException(errorMessage, exception);
|
||||||
}
|
}
|
||||||
catch (IOException exception)
|
catch (IOException exception)
|
||||||
{
|
{
|
||||||
String errorMessage = "IOError during parsing." + exception.getMessage();
|
String errorMessage = "IOError during parsing." + exception.getMessage();
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage, exception);
|
throw new XidynException(errorMessage, exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -311,12 +315,11 @@ public class XidynUtils
|
||||||
/**
|
/**
|
||||||
* This method extracts the string before the <i>html</i> tag.
|
* This method extracts the string before the <i>html</i> tag.
|
||||||
*
|
*
|
||||||
* A possible way is to use pattern searching for
|
* A possible way is to use pattern searching for <i>$(.*)<html>.*^</i>.
|
||||||
* <i>$(.*)<html>.*^</i>. But if there is no <i>html</i> tag, all the
|
* But if there is no <i>html</i> tag, all the source is read for nothing.
|
||||||
* source is read for nothing.
|
|
||||||
*
|
*
|
||||||
* A best way is to analyze each < while it is a XML tag or a DOCTYPE tag
|
* A best way is to analyze each < while it is a XML tag or a DOCTYPE tag or
|
||||||
* or the <HTML> tag.
|
* the <HTML> tag.
|
||||||
*
|
*
|
||||||
* Uses cases:
|
* Uses cases:
|
||||||
*
|
*
|
||||||
|
@ -327,8 +330,8 @@ public class XidynUtils
|
||||||
*
|
*
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @return the string before the <i>html</i> tag or null if no <i>html</i>
|
* @return the string before the <i>html</i> tag or null if no <i>html</i> tag
|
||||||
* tag found. So, "" if there is a <i>html</i> tag without doctype.
|
* found. So, "" if there is a <i>html</i> tag without doctype.
|
||||||
*/
|
*/
|
||||||
public static String extractDoctype(final String source)
|
public static String extractDoctype(final String source)
|
||||||
{
|
{
|
||||||
|
@ -397,7 +400,7 @@ public class XidynUtils
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @return the document
|
* @return the document
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static Document fileToDom(final File source) throws Exception
|
public static Document fileToDom(final File source) throws Exception
|
||||||
|
@ -711,8 +714,8 @@ public class XidynUtils
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Any ampersand lt;, ampersand gt; and ampersand amp; sequences in text
|
* Any ampersand lt;, ampersand gt; and ampersand amp; sequences in text nodes
|
||||||
* nodes get read in as symbols. This method converts them back to entities.
|
* get read in as symbols. This method converts them back to entities.
|
||||||
*
|
*
|
||||||
* @param source
|
* @param source
|
||||||
* String that is to have the entities restored..
|
* String that is to have the entities restored..
|
||||||
|
@ -773,10 +776,10 @@ public class XidynUtils
|
||||||
* @param source
|
* @param source
|
||||||
* the source
|
* the source
|
||||||
* @return the document
|
* @return the document
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public static Document urlToDom(final URL source) throws Exception
|
public static Document urlToDom(final URL source) throws XidynException
|
||||||
{
|
{
|
||||||
Document result;
|
Document result;
|
||||||
|
|
||||||
|
@ -789,7 +792,7 @@ public class XidynUtils
|
||||||
String errorMessage = "IOError during parsing." + exception.getMessage();
|
String errorMessage = "IOError during parsing." + exception.getMessage();
|
||||||
logger.error(errorMessage);
|
logger.error(errorMessage);
|
||||||
result = null;
|
result = null;
|
||||||
throw new Exception(errorMessage, exception);
|
throw new XidynException(errorMessage, exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -20,6 +20,8 @@ package fr.devinsy.xidyn.views;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Interface CharterView.
|
* The Interface CharterView.
|
||||||
*/
|
*/
|
||||||
|
@ -35,10 +37,10 @@ public interface CharterView extends View
|
||||||
* @param content
|
* @param content
|
||||||
* the content
|
* the content
|
||||||
* @return the html
|
* @return the html
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer getHtml(final Long userId, final Locale language, final CharSequence content) throws Exception;
|
public StringBuffer getHtml(final Long userId, final Locale language, final CharSequence content) throws XidynException;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ////////////////////////////////////////////////////////////////////////
|
// ////////////////////////////////////////////////////////////////////////
|
|
@ -18,6 +18,8 @@
|
||||||
*/
|
*/
|
||||||
package fr.devinsy.xidyn.views;
|
package fr.devinsy.xidyn.views;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Interface View.
|
* The Interface View.
|
||||||
*/
|
*/
|
||||||
|
@ -27,10 +29,10 @@ public interface View
|
||||||
* Gets the html.
|
* Gets the html.
|
||||||
*
|
*
|
||||||
* @return the html
|
* @return the html
|
||||||
* @throws Exception
|
* @throws XidynException
|
||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
public StringBuffer getHtml() throws Exception;
|
public StringBuffer getHtml() throws XidynException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
148
src/fr/devinsy/xidyn/views/ViewCache.java
Normal file
148
src/fr/devinsy/xidyn/views/ViewCache.java
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
||||||
|
*
|
||||||
|
* This file is part of Xidyn.
|
||||||
|
*
|
||||||
|
* Xidyn is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Xidyn is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with Xidyn. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
package fr.devinsy.xidyn.views;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class ViewCache.
|
||||||
|
*/
|
||||||
|
public class ViewCache
|
||||||
|
{
|
||||||
|
private Map<String, ViewCacheItem> cache;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new view cache.
|
||||||
|
*/
|
||||||
|
public ViewCache()
|
||||||
|
{
|
||||||
|
this.cache = new HashMap<String, ViewCacheItem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the HT ml.
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* the key
|
||||||
|
* @return the HT ml
|
||||||
|
* @throws XidynException
|
||||||
|
* the exception
|
||||||
|
*/
|
||||||
|
public String getHTMl(final String key) throws XidynException
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
ViewCacheItem item = this.cache.get(key);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (item.isDeprecated())
|
||||||
|
{
|
||||||
|
item.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
result = item.view().getHtml().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the view.
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* the key
|
||||||
|
* @return the view
|
||||||
|
*/
|
||||||
|
public View getView(final String key)
|
||||||
|
{
|
||||||
|
View result;
|
||||||
|
|
||||||
|
ViewCacheItem item = this.cache.get(key);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = item.view();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if is empty.
|
||||||
|
*
|
||||||
|
* @return true, if is empty
|
||||||
|
*/
|
||||||
|
public boolean isEmpty()
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
|
||||||
|
result = this.cache.isEmpty();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Purge.
|
||||||
|
*/
|
||||||
|
public void purge()
|
||||||
|
{
|
||||||
|
for (ViewCacheItem item : this.cache.values())
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put.
|
||||||
|
*
|
||||||
|
* @param view
|
||||||
|
* the view
|
||||||
|
* @param key
|
||||||
|
* the key
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String put(final View view, final String key)
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
ViewCacheItem item = new ViewCacheItem(view);
|
||||||
|
this.cache.put(key, item);
|
||||||
|
|
||||||
|
//
|
||||||
|
result = item.html().toString();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ////////////////////////////////////////////////////////////////////////
|
175
src/fr/devinsy/xidyn/views/ViewCacheItem.java
Normal file
175
src/fr/devinsy/xidyn/views/ViewCacheItem.java
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
||||||
|
*
|
||||||
|
* This file is part of Xidyn.
|
||||||
|
*
|
||||||
|
* Xidyn is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Xidyn is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with Xidyn. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
package fr.devinsy.xidyn.views;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class ViewCacheItem.
|
||||||
|
*/
|
||||||
|
public class ViewCacheItem
|
||||||
|
{
|
||||||
|
private View view;
|
||||||
|
private long creationDate;
|
||||||
|
private long editionDate;
|
||||||
|
private long lastUseDate;
|
||||||
|
private StringBuffer html;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new view cache item.
|
||||||
|
*
|
||||||
|
* @param source
|
||||||
|
* the source
|
||||||
|
*/
|
||||||
|
public ViewCacheItem(final View source)
|
||||||
|
{
|
||||||
|
this.view = source;
|
||||||
|
this.creationDate = time();
|
||||||
|
update();
|
||||||
|
this.editionDate = this.creationDate;
|
||||||
|
this.lastUseDate = this.creationDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creation date.
|
||||||
|
*
|
||||||
|
* @return the long
|
||||||
|
*/
|
||||||
|
public long creationDate()
|
||||||
|
{
|
||||||
|
long result;
|
||||||
|
|
||||||
|
result = this.creationDate;
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Edition date.
|
||||||
|
*
|
||||||
|
* @return the long
|
||||||
|
*/
|
||||||
|
public long editionDate()
|
||||||
|
{
|
||||||
|
long result;
|
||||||
|
|
||||||
|
result = this.editionDate;
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Html.
|
||||||
|
*
|
||||||
|
* @return the string buffer
|
||||||
|
*/
|
||||||
|
public StringBuffer html()
|
||||||
|
{
|
||||||
|
return this.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if is deprecated.
|
||||||
|
*
|
||||||
|
* @return true, if is deprecated
|
||||||
|
*/
|
||||||
|
public boolean isDeprecated()
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
|
||||||
|
if ((this.view == null) || (this.html == null))
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
// result = this.view.isOutdated();
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Last use date.
|
||||||
|
*
|
||||||
|
* @return the long
|
||||||
|
*/
|
||||||
|
public long lastUseDate()
|
||||||
|
{
|
||||||
|
long result;
|
||||||
|
|
||||||
|
result = this.lastUseDate;
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Last use time.
|
||||||
|
*
|
||||||
|
* @return the long
|
||||||
|
*/
|
||||||
|
public long lastUseTime()
|
||||||
|
{
|
||||||
|
return this.lastUseDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update.
|
||||||
|
*/
|
||||||
|
public void update()
|
||||||
|
{
|
||||||
|
this.editionDate = time();
|
||||||
|
this.lastUseDate = this.editionDate;
|
||||||
|
// TODO
|
||||||
|
// this.html = this.view.getHtml();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View.
|
||||||
|
*
|
||||||
|
* @return the view
|
||||||
|
*/
|
||||||
|
public View view()
|
||||||
|
{
|
||||||
|
return this.view;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Time.
|
||||||
|
*
|
||||||
|
* @return the long
|
||||||
|
*/
|
||||||
|
public static long time()
|
||||||
|
{
|
||||||
|
long result;
|
||||||
|
|
||||||
|
result = new Date().getTime();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ////////////////////////////////////////////////////////////////////////
|
60
src/fr/devinsy/xidyn/views/ViewProxy.java
Normal file
60
src/fr/devinsy/xidyn/views/ViewProxy.java
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2006-2017 Christian Pierre MOMON
|
||||||
|
*
|
||||||
|
* This file is part of Xidyn.
|
||||||
|
*
|
||||||
|
* Xidyn is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Xidyn is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with Xidyn. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
package fr.devinsy.xidyn.views;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class ViewProxy.
|
||||||
|
*/
|
||||||
|
public class ViewProxy implements Serializable
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static class Holder
|
||||||
|
{
|
||||||
|
private final static ViewProxy INSTANCE = new ViewProxy();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -5517300613792689510L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instance.
|
||||||
|
*
|
||||||
|
* @return the view proxy
|
||||||
|
*/
|
||||||
|
public ViewProxy instance()
|
||||||
|
{
|
||||||
|
return Holder.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* http://thecodersbreakfast.net/index.php?post/2008/02/25/26-de-la-bonne-
|
||||||
|
* implementation-du-singleton-en-java
|
||||||
|
*
|
||||||
|
* @return the object
|
||||||
|
*/
|
||||||
|
private Object readResolve()
|
||||||
|
{
|
||||||
|
return Holder.INSTANCE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ////////////////////////////////////////////////////////////////////////
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2016,2017 Christian Pierre MOMON
|
* Copyright (C) 2016-2018 Christian Pierre MOMON
|
||||||
*
|
*
|
||||||
* This file is part of Xidyn.
|
* This file is part of Xidyn.
|
||||||
*
|
*
|
||||||
|
@ -37,7 +37,7 @@ public class PageFactoryTest
|
||||||
public void before()
|
public void before()
|
||||||
{
|
{
|
||||||
BasicConfigurator.configure();
|
BasicConfigurator.configure();
|
||||||
Logger.getRootLogger().setLevel(Level.ERROR);
|
Logger.getRootLogger().setLevel(Level.INFO);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue