Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.belladati.sdk.impl;
  
  import java.util.Locale;
  
 
 abstract class ViewImpl implements View {

Builds an instance based on the given node. Will select an appropriate class to instantiate based on the view's type.
 
 		switch (parseType(node)) {
 		case :
 			return new TableViewImpl(servicenode);
 		default:
 			return new JsonViewImpl(servicenode);
 		}
 	}

Parses the view type from the given JSON node.

Parameters:
node the node to examine
Returns:
the view type from the node
Throws:
ViewImpl.UnknownViewTypeException if no view type was found or it couldn't be parsed
 
 	private static ViewType parseType(JsonNode nodethrows UnknownViewTypeException {
 		if (node.hasNonNull("type")) {
 			try {
 				return ViewType.valueOf(node.get("type").asText().toUpperCase(.));
 			} catch (IllegalArgumentException e) {
 				throw new UnknownViewTypeException(node.get("type").asText());
 			}
 		} else {
 			throw new UnknownViewTypeException("missing type");
 		}
 	}

Parses the date interval from the given date/time definition node.

Parameters:
node the node to examine
Returns:
the node's date interval, or null if none is defined or it's invalid
 
 	private static Interval<DateUnitparseDateInterval(JsonNode node) {
 		try {
 			if (node.hasNonNull("dateInterval") && node.get("dateInterval").hasNonNull("aggregationType")) {
 				JsonNode dateInterval = node.get("dateInterval");
 				DateUnit unit = DateUnit.valueOf(dateInterval.get("aggregationType").asText().toUpperCase(.));
 				JsonNode interval = dateInterval.get("interval");
 				String type = interval.get("type").asText().toLowerCase(.);
 				if ("relative".equals(type)) {
 					// the server may send numbers inside strings
 					// or numbers as decimals, e.g. 3.0
 					// regardless, we treat them all as int
 					String from = interval.get("from").asText();
 					String to = interval.get("to").asText();
 					return new RelativeInterval<DateUnit>(unit, (int) Float.parseFloat(from), (int) Float.parseFloat(to));
 				} else if ("absolute".equals(type)) {
 					// an absolute interval
 					return new AbsoluteInterval<DateUnit>(unitunit.parseAbsolute(interval.get("from")),
 						unit.parseAbsolute(interval.get("to")));
 				}
 			}
 		} catch (InvalidIntervalException e) {
 			// ignore the interval
 		} catch (NumberFormatException e) {
 			// ignore the interval
 		} catch (IllegalArgumentException e) {
 			// ignore the interval
 		}
 		return null;
 	}

Parses the time interval from the given date/time definition node.

Parameters:
node the node to examine
Returns:
the node's time interval, or null if none is defined or it's invalid
 
 	private static Interval<TimeUnitparseTimeInterval(JsonNode node) {
 		try {
 			if (node.hasNonNull("timeInterval") && node.get("timeInterval").hasNonNull("aggregationType")) {
				JsonNode timeInterval = node.get("timeInterval");
				TimeUnit unit = TimeUnit.valueOf(timeInterval.get("aggregationType").asText().toUpperCase(.));
				JsonNode interval = timeInterval.get("interval");
				String type = interval.get("type").asText().toLowerCase(.);
				if ("relative".equals(type)) {
					// the server may send numbers inside strings
					// or numbers as decimals, e.g. 3.0
					// regardless, we treat them all as int
					String from = interval.get("from").asText();
					String to = interval.get("to").asText();
					return new RelativeInterval<TimeUnit>(unit, (int) Float.parseFloat(from), (int) Float.parseFloat(to));
else if ("absolute".equals(type)) {
					// an absolute interval
					return new AbsoluteInterval<TimeUnit>(unitunit.parseAbsolute(interval.get("from")),
						unit.parseAbsolute(interval.get("to")));
				}
			}
catch (InvalidIntervalException e) {
			// ignore the interval
catch (NumberFormatException e) {
			// ignore the interval
catch (IllegalArgumentException e) {
			// ignore the interval
		}
		return null;
	}
	protected final BellaDatiServiceImpl service;
	private final String id;
	private final String name;
	private final ViewType type;
	private final boolean dateIntervalSupported;
	private final boolean timeIntervalSupported;
	private final Interval<DateUnitdateInterval;
	private final Interval<TimeUnittimeInterval;
		this. = service;
		this. = node.get("id").asText();
		this. = node.get("name").asText();
		this. = parseType(node);
		if (node.hasNonNull("dateTimeDefinition") && this. != .) {
			// we have a date/time definition and are not dealing with a table
			JsonNode definition = node.get("dateTimeDefinition");
			if (definition.hasNonNull("dateSupported")) {
				 = definition.get("dateSupported").asBoolean();
else {
			}
			if (definition.hasNonNull("timeSupported")) {
				 = definition.get("timeSupported").asBoolean();
else {
			}
else {
			 = null;
			 = null;
		}
	}
	public String getId() {
		return ;
	}
	public String getName() {
		return ;
	}
	public ViewType getType() {
		return ;
	}
	public Object loadContent(Filter<?>... filters) {
		return .loadViewContent(filters);
	}
	public Object loadContent(Collection<Filter<?>> filters) {
		return .loadViewContent(filters);
	}
	public String toString() {
		return ;
	}
	public boolean equals(Object obj) {
		if (obj instanceof ViewImpl) {
			return .equals(((ViewImplobj).);
		}
		return false;
	}
	public int hashCode() {
		return .hashCode();
	}
	public boolean isDateIntervalSupported() {
	}
	public boolean isTimeIntervalSupported() {
	}
	public boolean hasPredefinedDateInterval() {
		return  != null;
	}
	public boolean hasPredefinedTimeInterval() {
		return  != null;
	}
		return ;
	}
		return ;
	}
		return new ViewLoaderImpl();
	}
	static class UnknownViewTypeException extends Exception {
The serialVersionUID
		private static final long serialVersionUID = -9179478821813868612L;
			super("Unknown view type: " + type);
		}
	}
New to GrepCode? Check out our FAQ X