All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.reprezen.kaizen.oasparser.val3.ServerVariableValidator Maven / Gradle / Ivy

/*******************************************************************************
 *  Copyright (c) 2017 ModelSolv, Inc. and others.
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *
 *  Contributors:
 *     ModelSolv, Inc. - initial API and implementation and/or initial documentation
 *******************************************************************************/
package com.reprezen.kaizen.oasparser.val3;

import javax.lang.model.type.NullType;

import com.reprezen.kaizen.oasparser.model3.ServerVariable;
import com.reprezen.kaizen.oasparser.val.Messages;
import com.reprezen.kaizen.oasparser.val.ObjectValidatorBase;
import com.reprezen.kaizen.oasparser.val.ValidationResults;

public class ServerVariableValidator extends ObjectValidatorBase {

	@Override
	public void validateObject(final ServerVariable variable, final ValidationResults results) {
		results.withCrumb("enum", new Runnable() {
			@Override
			public void run() {
				int i = 0;
				for (Object primitive : variable.getEnumValues()) {
					checkPrimitive(primitive, results, i++);
				}
			}
		});
		results.withCrumb("default", new Runnable() {
			@Override
			public void run() {
				checkPrimitive(variable.getDefault(), results, "default");
			}
		});
		validateString(variable.getDescription(), results, false, "description");
	}

	private void checkPrimitive(Object primitive, ValidationResults results, int index) {
		checkPrimitive(primitive, results, "[" + index + "]");
	}

	private void checkPrimitive(final Object primitive, ValidationResults results, String crumb) {
		if (!(primitive instanceof String || primitive instanceof Number || primitive instanceof Boolean)) {
			results.withCrumb(crumb, new Runnable() {
				@Override
				public void run() {
					Messages.m.msg("BadPrimitive|Invalid primitive value", String.valueOf(primitive),
							(primitive != null ? primitive.getClass() : NullType.class).getName());
				}
			});
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy