/*
* The contents of this file are subject to the OpenMRS Public License
* Version 2.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://license.openmrs.org
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and
* limitations under the License.
*
* Copyright (C) OpenHMIS. All Rights Reserved.
*/
package org.openmrs.module.openhmis.cashier.web.propertyeditor;
import java.beans.PropertyEditorSupport;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.openmrs.Provider;
import org.openmrs.api.ProviderService;
import org.openmrs.api.context.Context;
/**
* Property editor for {@link org.openmrs.Provider}s
*/
public class ProviderPropertyEditor extends PropertyEditorSupport {
@Override
public String getAsText() {
Provider provider = (Provider)getValue();
if (provider == null) {
return "";
} else {
return provider.getId().toString();
}
}
@Override
public void setAsText(String text) {
ProviderService service = Context.getProviderService();
if (StringUtils.isEmpty(text)) {
setValue(null);
} else {
Provider provider;
if (NumberUtils.isNumber(text)) {
provider = service.getProvider(Integer.valueOf(text));
} else {
provider = service.getProviderByUuid(text);
}
setValue(provider);
if (provider == null) {
throw new IllegalArgumentException("Provider not found: " + text);
}
}
}
}