
org.semanticwb.model.UniqueTextElement Maven / Gradle / Ivy
/*
* SemanticWebBuilder es una plataforma para el desarrollo de portales y aplicaciones de integración,
* colaboración y conocimiento, que gracias al uso de tecnología semántica puede generar contextos de
* información alrededor de algún tema de interés o bien integrar información y aplicaciones de diferentes
* fuentes, donde a la información se le asigna un significado, de forma que pueda ser interpretada y
* procesada por personas y/o sistemas, es una creación original del Fondo de Información y Documentación
* para la Industria INFOTEC, cuyo registro se encuentra actualmente en trámite.
*
* INFOTEC pone a su disposición la herramienta SemanticWebBuilder a través de su licenciamiento abierto al público (‘open source’),
* en virtud del cual, usted podrá usarlo en las mismas condiciones con que INFOTEC lo ha diseñado y puesto a su disposición;
* aprender de él; distribuirlo a terceros; acceder a su código fuente y modificarlo, y combinarlo o enlazarlo con otro software,
* todo ello de conformidad con los términos y condiciones de la LICENCIA ABIERTA AL PÚBLICO que otorga INFOTEC para la utilización
* del SemanticWebBuilder 4.0.
*
* INFOTEC no otorga garantía sobre SemanticWebBuilder, de ninguna especie y naturaleza, ni implícita ni explícita,
* siendo usted completamente responsable de la utilización que le dé y asumiendo la totalidad de los riesgos que puedan derivar
* de la misma.
*
* Si usted tiene cualquier duda o comentario sobre SemanticWebBuilder, INFOTEC pone a su disposición la siguiente
* dirección electrónica:
* http://www.semanticwebbuilder.org
*/
package org.semanticwb.model;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
import org.semanticwb.Logger;
import org.semanticwb.SWBUtils;
import org.semanticwb.platform.SemanticClass;
import org.semanticwb.platform.SemanticObject;
import org.semanticwb.platform.SemanticProperty;
public class UniqueTextElement extends org.semanticwb.model.base.UniqueTextElementBase
{
/** The log. */
private static Logger log = SWBUtils.getLogger(UniqueTextElement.class);
public UniqueTextElement(org.semanticwb.platform.SemanticObject base)
{
super(base);
}
/* (non-Javadoc)
* @see org.semanticwb.model.Text#renderElement(javax.servlet.http.HttpServletRequest, org.semanticwb.platform.SemanticObject, org.semanticwb.platform.SemanticProperty, java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public String renderElement(HttpServletRequest request, SemanticObject obj, SemanticProperty prop, String propName, String type,
String mode, String lang)
{
if (type.equals("dojo"))
{
setAttribute("isValid",
"return validateElement('" + propName + "','" + getValidateURL(obj, prop)
+ "',this.textbox.value);");
} else
{
setAttribute("isValid", null);
}
return super.renderElement(request, obj, prop, propName, type, mode, lang);
}
/* (non-Javadoc)
* @see org.semanticwb.model.base.FormElementBase#validate(javax.servlet.http.HttpServletRequest, org.semanticwb.platform.SemanticObject, org.semanticwb.platform.SemanticProperty)
*/
/**
* Validate.
*
* @param request the request
* @param obj the obj
* @param prop the prop
* @throws FormValidateException the form validate exception
*/
@Override
public void validate(HttpServletRequest request, SemanticObject obj, SemanticProperty prop, String propName)
throws FormValidateException
{
super.validate(request, obj, prop, propName);
String value = request.getParameter(propName);
// if (value != null && value.indexOf(" ") >= 0)
// {
// throw new FormValidateException("No se permiten espacios:" + value);
// }
//System.out.println("obj:"+obj.getURI()+" prop:"+prop+" propName:"+propName+" value:"+value);
if (value != null)
{
int l = value.length();
String regExp=getRegExp();
if(regExp!=null)
{
if(!value.matches(regExp))
{
throw new FormValidateException("String no cumple con la expresion regular");
}
}
if (isRestrict4Id())
{
for (int x = 0; x < l; x++)
{
char ch = value.charAt(x);
if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z')
|| (ch >= 'A' && ch <= 'Z') || ch == '_' || ch == '/' || ch == '-')
{
//pasa caracter
} else
{
throw new FormValidateException("No es permitido la letra " + ch + " en el Id del elemento.");
}
}
}
String reservedWords = getReservedWords();
if (null != reservedWords)
{
HashMap hsres = new HashMap();
StringTokenizer stoken = new StringTokenizer(reservedWords, ",");
while (stoken.hasMoreTokens())
{
String token = stoken.nextToken();
hsres.put(token, token);
}
if (hsres.get(value) != null) // encontro palabra reservada
{
throw new FormValidateException("No se permiten es texto reservado:" + value);
}
}
SemanticClass sclass = prop.getDomainClass();
Iterator itso = obj.getModel().listSubjects(prop, value);
//System.out.println("sclass:"+sclass.getURI()+" model1:"+obj.getModel().getName()+" model2:"+getModel().getName());
while (itso.hasNext())
{
SemanticObject sObj = itso.next();
//System.out.println("sObj:"+sObj);
if(!obj.getSemanticClass().equals(sObj.getSemanticClass()))
{
continue;
}
if (obj != null && sObj.equals(obj))
{
continue;
}
//System.out.println("Ya existe:"+sObj);
//existe texto igual
throw new FormValidateException("Ya existe Texto(URL):" + value);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy