/* * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.http.webclient.properties; import java.beans.PropertyEditorSupport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.openrdf.http.protocol.Protocol; import org.openrdf.model.URI; import org.openrdf.model.ValueFactory; public class UriPropertyEditor extends PropertyEditorSupport { final Logger logger = LoggerFactory.getLogger(this.getClass()); private ValueFactory valueFactory; public UriPropertyEditor(ValueFactory valueFactory) { this.valueFactory = valueFactory; } @Override public String getAsText() { String result = null; URI uri = (URI)getValue(); if (uri != null) { result = Protocol.encodeValue(uri); logger.debug("Getting uri as " + result); } return result; } @Override public void setAsText(String text) throws IllegalArgumentException { if (!"".equals(text)) { URI uri = Protocol.decodeURI(text, valueFactory); logger.debug("Setting uri to " + uri); setValue(uri); } else { setValue(null); } } }