/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache 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://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kie.workbench.common.screens.datasource.management.client.validation;
import java.util.Map;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import org.jboss.errai.common.client.api.Caller;
import org.jboss.errai.common.client.api.RemoteCallback;
import org.kie.workbench.common.services.shared.validation.ValidationService;
import org.uberfire.ext.editor.commons.client.validation.ValidatorCallback;
@ApplicationScoped
public class ClientValidationService {
private Caller<ValidationService> validationService;
@Inject
public ClientValidationService( final Caller<ValidationService> validationService ) {
this.validationService = validationService;
}
public void isValidGroupId( final String groupId, final ValidatorCallback callback ) {
validationService.call( new RemoteCallback<Boolean>() {
@Override
public void callback( Boolean result ) {
if ( Boolean.TRUE.equals( result ) ) {
callback.onSuccess();
} else {
callback.onFailure();
}
}
} ).validateGroupId( groupId );
}
public void isValidArtifactId( final String artifactId, final ValidatorCallback callback ) {
validationService.call( new RemoteCallback<Boolean>() {
@Override
public void callback( Boolean result ) {
if ( Boolean.TRUE.equals( result ) ) {
callback.onSuccess();
} else {
callback.onFailure();
}
}
} ).validateArtifactId( artifactId );
}
public void isValidVersionId( final String versionId, final ValidatorCallback callback ) {
validationService.call( new RemoteCallback<Boolean>() {
@Override
public void callback( Boolean result ) {
if ( Boolean.TRUE.equals( result ) ) {
callback.onSuccess();
} else {
callback.onFailure();
}
}
} ).validateGAVVersion( versionId );
}
public void isValidClassName( final String className, final ValidatorCallback callback ) {
String[] identifiers = className.split( "\\.", -1 );
validationService.call( new RemoteCallback<Map<String, Boolean>>() {
@Override
public void callback( Map<String, Boolean> results ) {
Boolean result = false;
for ( Boolean subResult : results.values() ) {
if ( Boolean.FALSE.equals( subResult ) ) {
result = false;
break;
} else {
result = true;
}
}
if ( result ) {
callback.onSuccess();
} else {
callback.onFailure();
}
}
} ).evaluateJavaIdentifiers( identifiers );
}
public void isValidDriverName( final String driverName, final ValidatorCallback callback ) {
isNotEmpty( driverName, callback );
}
public void isValidDataSourceName( final String dataSourceName, final ValidatorCallback callback ) {
isNotEmpty( dataSourceName, callback );
}
public void isValidConnectionURL( String connectionURL, ValidatorCallback callback ) {
isNotEmpty( connectionURL, callback );
}
public void isNotEmpty( String value, ValidatorCallback callback ) {
if ( !isEmpty( value ) ) {
callback.onSuccess();
} else {
callback.onFailure();
}
}
public boolean isEmpty( String value ) {
return value == null || value.trim().isEmpty();
}
}