/** * Parses a list of tags from the command line, assuming it comes from the GATK Engine tags, and * returns the corresponding EnumSet. * * @param arg the actual engine arg, used for the UserException if there's an error * @param tags a list of string tags that should be converted to the MissingPedField value * @return */ public static final EnumSet<MissingPedField> parseMissingFieldTags( final Object arg, final List<String> tags) { final EnumSet<MissingPedField> missingFields = EnumSet.noneOf(MissingPedField.class); for (final String tag : tags) { try { missingFields.add(MissingPedField.valueOf(tag)); } catch (IllegalArgumentException e) { throw new UserException.BadArgumentValue( arg.toString(), "Unknown tag " + tag + " allowed values are " + MissingPedField.values()); } } return missingFields; }
static EnumSet<FileAttribute> parse(String s) { if (s == null || s.length() == 0) { return EnumSet.allOf(FileAttribute.class); } EnumSet<FileAttribute> set = EnumSet.noneOf(FileAttribute.class); FileAttribute[] attributes = values(); for (char c : s.toCharArray()) { int i = 0; for (; i < attributes.length && c != attributes[i].symbol; i++) ; if (i < attributes.length) { if (!set.contains(attributes[i])) { set.add(attributes[i]); } else { throw new IllegalArgumentException( "There are more than one '" + attributes[i].symbol + "' in " + s); } } else { throw new IllegalArgumentException("'" + c + "' in " + s + " is undefined."); } } return set; }
static Arguments valueOf(String[] args, Configuration conf) throws IOException { List<Path> srcs = new ArrayList<Path>(); Path dst = null; Path log = null; EnumSet<Options> flags = EnumSet.noneOf(Options.class); String presevedAttributes = null; String mapredSslConf = null; long filelimit = Long.MAX_VALUE; long sizelimit = Long.MAX_VALUE; for (int idx = 0; idx < args.length; idx++) { Options[] opt = Options.values(); int i = 0; for (; i < opt.length && !args[idx].startsWith(opt[i].cmd); i++) ; if (i < opt.length) { flags.add(opt[i]); if (opt[i] == Options.PRESERVE_STATUS) { presevedAttributes = args[idx].substring(2); FileAttribute.parse(presevedAttributes); // validation } else if (opt[i] == Options.FILE_LIMIT) { filelimit = Options.FILE_LIMIT.parseLong(args, ++idx); } else if (opt[i] == Options.SIZE_LIMIT) { sizelimit = Options.SIZE_LIMIT.parseLong(args, ++idx); } } else if ("-f".equals(args[idx])) { if (++idx == args.length) { throw new IllegalArgumentException("urilist_uri not specified in -f"); } srcs.addAll(fetchFileList(conf, new Path(args[idx]))); } else if ("-log".equals(args[idx])) { if (++idx == args.length) { throw new IllegalArgumentException("logdir not specified in -log"); } log = new Path(args[idx]); } else if ("-mapredSslConf".equals(args[idx])) { if (++idx == args.length) { throw new IllegalArgumentException("ssl conf file not specified in -mapredSslConf"); } mapredSslConf = args[idx]; } else if ("-m".equals(args[idx])) { if (++idx == args.length) { throw new IllegalArgumentException("num_maps not specified in -m"); } try { conf.setInt(MAX_MAPS_LABEL, Integer.valueOf(args[idx])); } catch (NumberFormatException e) { throw new IllegalArgumentException("Invalid argument to -m: " + args[idx]); } } else if ('-' == args[idx].codePointAt(0)) { throw new IllegalArgumentException("Invalid switch " + args[idx]); } else if (idx == args.length - 1) { dst = new Path(args[idx]); } else { srcs.add(new Path(args[idx])); } } // mandatory command-line parameters if (srcs.isEmpty() || dst == null) { throw new IllegalArgumentException("Missing " + (dst == null ? "dst path" : "src")); } // incompatible command-line flags final boolean isOverwrite = flags.contains(Options.OVERWRITE); final boolean isUpdate = flags.contains(Options.UPDATE); final boolean isDelete = flags.contains(Options.DELETE); if (isOverwrite && isUpdate) { throw new IllegalArgumentException("Conflicting overwrite policies"); } if (isDelete && !isOverwrite && !isUpdate) { throw new IllegalArgumentException( Options.DELETE.cmd + " must be specified with " + Options.OVERWRITE + " or " + Options.UPDATE + "."); } return new Arguments( srcs, dst, log, flags, presevedAttributes, filelimit, sizelimit, mapredSslConf); }
protected void paintEvent(WPaintDevice paintDevice) { if (!(this.chart_ != null) || !this.chart_.cObjCreated_) { return; } if (this.chart_.getSeries(this.seriesColumn_).getType() != SeriesType.LineSeries && this.chart_.getSeries(this.seriesColumn_).getType() != SeriesType.CurveSeries) { if (this.getMethod() == WPaintedWidget.Method.HtmlCanvas) { StringBuilder ss = new StringBuilder(); ss.append("jQuery.removeData(").append(this.getJsRef()).append(",'sobj');"); ss.append("\nif (") .append(this.getObjJsRef()) .append(") {") .append(this.getObjJsRef()) .append(".canvas.style.cursor = 'auto';") .append("setTimeout(") .append(this.getObjJsRef()) .append(".repaint,0);}\n"); this.doJavaScript(ss.toString()); } logger.error( new StringWriter() .append("WAxisSliderWidget is not associated with a line or curve series.") .toString()); return; } WPainter painter = new WPainter(paintDevice); boolean horizontal = this.chart_.getOrientation() == Orientation.Vertical; double w = horizontal ? this.getWidth().getValue() : this.getHeight().getValue(); double h = horizontal ? this.getHeight().getValue() : this.getWidth().getValue(); boolean autoPadding = this.autoPadding_; if (autoPadding && EnumUtils.mask(paintDevice.getFeatures(), WPaintDevice.FeatureFlag.HasFontMetrics) .equals(0) && this.labelsEnabled_) { logger.error( new StringWriter() .append( "setAutoLayout(): device does not have font metrics (not even server-side font metrics).") .toString()); autoPadding = false; } if (autoPadding) { if (horizontal) { if (this.labelsEnabled_) { this.setSelectionAreaPadding(0, EnumSet.of(Side.Top)); this.setSelectionAreaPadding( (int) (this.chart_ .getAxis(Axis.XAxis) .calcMaxTickLabelSize(paintDevice, Orientation.Vertical) + 10), EnumSet.of(Side.Bottom)); this.setSelectionAreaPadding( (int) Math.max( this.chart_ .getAxis(Axis.XAxis) .calcMaxTickLabelSize(paintDevice, Orientation.Horizontal) / 2, 10.0), EnumSet.of(Side.Left, Side.Right)); } else { this.setSelectionAreaPadding(0, EnumSet.of(Side.Top)); this.setSelectionAreaPadding(5, EnumSet.of(Side.Left, Side.Right, Side.Bottom)); } } else { if (this.labelsEnabled_) { this.setSelectionAreaPadding(0, EnumSet.of(Side.Right)); this.setSelectionAreaPadding( (int) Math.max( this.chart_ .getAxis(Axis.XAxis) .calcMaxTickLabelSize(paintDevice, Orientation.Vertical) / 2, 10.0), EnumSet.of(Side.Top, Side.Bottom)); this.setSelectionAreaPadding( (int) (this.chart_ .getAxis(Axis.XAxis) .calcMaxTickLabelSize(paintDevice, Orientation.Horizontal) + 10), EnumSet.of(Side.Left)); } else { this.setSelectionAreaPadding(0, EnumSet.of(Side.Right)); this.setSelectionAreaPadding(5, EnumSet.of(Side.Top, Side.Bottom, Side.Left)); } } } double left = horizontal ? this.getSelectionAreaPadding(Side.Left) : this.getSelectionAreaPadding(Side.Top); double right = horizontal ? this.getSelectionAreaPadding(Side.Right) : this.getSelectionAreaPadding(Side.Bottom); double top = horizontal ? this.getSelectionAreaPadding(Side.Top) : this.getSelectionAreaPadding(Side.Right); double bottom = horizontal ? this.getSelectionAreaPadding(Side.Bottom) : this.getSelectionAreaPadding(Side.Left); double maxW = w - left - right; WRectF drawArea = new WRectF(left, 0, maxW, h); List<WAxis.Segment> segmentsBak = new ArrayList<WAxis.Segment>(this.chart_.getAxis(Axis.XAxis).segments_); double renderIntervalBak = this.chart_.getAxis(Axis.XAxis).renderInterval_; this.chart_ .getAxis(Axis.XAxis) .prepareRender( horizontal ? Orientation.Horizontal : Orientation.Vertical, drawArea.getWidth()); final WRectF chartArea = this.chart_.chartArea_; WRectF selectionRect = null; { double u = -this.chart_.xTransformHandle_.getValue().getDx() / (chartArea.getWidth() * this.chart_.xTransformHandle_.getValue().getM11()); selectionRect = new WRectF(0, top, maxW, h - (top + bottom)); this.transform_.setValue( new WTransform( 1 / this.chart_.xTransformHandle_.getValue().getM11(), 0, 0, 1, u * maxW, 0)); } WRectF seriesArea = new WRectF(left, top + 5, maxW, h - (top + bottom + 5)); WTransform selectionTransform = this.hv(new WTransform(1, 0, 0, 1, left, 0).multiply(this.transform_.getValue())); WRectF rect = selectionTransform.map(this.hv(selectionRect)); painter.fillRect(this.hv(new WRectF(left, top, maxW, h - top - bottom)), this.background_); painter.fillRect(rect, this.selectedAreaBrush_); final double TICK_LENGTH = 5; final double ANGLE1 = 15; final double ANGLE2 = 80; double tickStart = 0.0; double tickEnd = 0.0; double labelPos = 0.0; AlignmentFlag labelHFlag = AlignmentFlag.AlignCenter; AlignmentFlag labelVFlag = AlignmentFlag.AlignMiddle; final WAxis axis = this.chart_.getAxis(Axis.XAxis); if (horizontal) { tickStart = 0; tickEnd = TICK_LENGTH; labelPos = TICK_LENGTH; labelVFlag = AlignmentFlag.AlignTop; } else { tickStart = -TICK_LENGTH; tickEnd = 0; labelPos = -TICK_LENGTH; labelHFlag = AlignmentFlag.AlignRight; } if (horizontal) { if (axis.getLabelAngle() > ANGLE1) { labelHFlag = AlignmentFlag.AlignRight; if (axis.getLabelAngle() > ANGLE2) { labelVFlag = AlignmentFlag.AlignMiddle; } } else { if (axis.getLabelAngle() < -ANGLE1) { labelHFlag = AlignmentFlag.AlignLeft; if (axis.getLabelAngle() < -ANGLE2) { labelVFlag = AlignmentFlag.AlignMiddle; } } } } else { if (axis.getLabelAngle() > ANGLE1) { labelVFlag = AlignmentFlag.AlignBottom; if (axis.getLabelAngle() > ANGLE2) { labelHFlag = AlignmentFlag.AlignCenter; } } else { if (axis.getLabelAngle() < -ANGLE1) { labelVFlag = AlignmentFlag.AlignTop; if (axis.getLabelAngle() < -ANGLE2) { labelHFlag = AlignmentFlag.AlignCenter; } } } } EnumSet<AxisProperty> axisProperties = EnumSet.of(AxisProperty.Line); if (this.labelsEnabled_) { axisProperties.add(AxisProperty.Labels); } if (horizontal) { axis.render( painter, axisProperties, new WPointF(drawArea.getLeft(), h - bottom), new WPointF(drawArea.getRight(), h - bottom), tickStart, tickEnd, labelPos, EnumSet.of(labelHFlag, labelVFlag)); WPainterPath line = new WPainterPath(); line.moveTo(drawArea.getLeft() + 0.5, h - (bottom - 0.5)); line.lineTo(drawArea.getRight(), h - (bottom - 0.5)); painter.strokePath(line, this.chart_.getAxis(Axis.XAxis).getPen()); } else { axis.render( painter, axisProperties, new WPointF(this.getSelectionAreaPadding(Side.Left) - 1, drawArea.getLeft()), new WPointF(this.getSelectionAreaPadding(Side.Left) - 1, drawArea.getRight()), tickStart, tickEnd, labelPos, EnumSet.of(labelHFlag, labelVFlag)); WPainterPath line = new WPainterPath(); line.moveTo(this.getSelectionAreaPadding(Side.Left) - 0.5, drawArea.getLeft() + 0.5); line.lineTo(this.getSelectionAreaPadding(Side.Left) - 0.5, drawArea.getRight()); painter.strokePath(line, this.chart_.getAxis(Axis.XAxis).getPen()); } WPainterPath curve = new WPainterPath(); { WTransform t = new WTransform(1, 0, 0, 1, seriesArea.getLeft(), seriesArea.getTop()) .multiply( new WTransform( seriesArea.getWidth() / chartArea.getWidth(), 0, 0, seriesArea.getHeight() / chartArea.getHeight(), 0, 0)) .multiply(new WTransform(1, 0, 0, 1, -chartArea.getLeft(), -chartArea.getTop())); if (!horizontal) { t.assign( new WTransform( 0, 1, 1, 0, this.getSelectionAreaPadding(Side.Left) - this.getSelectionAreaPadding(Side.Right) - 5, 0) .multiply(t) .multiply(new WTransform(0, 1, 1, 0, 0, 0))); } curve.assign(t.map(this.chart_.pathForSeries(this.seriesColumn_))); } { WRectF leftHandle = this.hv(new WRectF(-5, top, 5, h - top - bottom)); WTransform t = new WTransform(1, 0, 0, 1, left, -top) .multiply( new WTransform() .translate(this.transform_.getValue().map(selectionRect.getTopLeft()))); painter.fillRect(this.hv(t).map(leftHandle), this.handleBrush_); } { WRectF rightHandle = this.hv(new WRectF(0, top, 5, h - top - bottom)); WTransform t = new WTransform(1, 0, 0, 1, left, -top) .multiply( new WTransform() .translate(this.transform_.getValue().map(selectionRect.getTopRight()))); painter.fillRect(this.hv(t).map(rightHandle), this.handleBrush_); } if (this.selectedSeriesPen_ != this.seriesPen_ && !this.selectedSeriesPen_.equals(this.seriesPen_)) { WPainterPath clipPath = new WPainterPath(); clipPath.addRect(this.hv(selectionRect)); painter.setClipPath(selectionTransform.map(clipPath)); painter.setClipping(true); painter.setPen(this.getSelectedSeriesPen()); painter.drawPath(curve); WPainterPath leftClipPath = new WPainterPath(); leftClipPath.addRect( this.hv(new WTransform(1, 0, 0, 1, -selectionRect.getWidth(), 0).map(selectionRect))); painter.setClipPath( this.hv( new WTransform(1, 0, 0, 1, left, -top) .multiply( new WTransform() .translate( this.transform_.getValue().map(selectionRect.getTopLeft())))) .map(leftClipPath)); painter.setPen(this.getSeriesPen()); painter.drawPath(curve); WPainterPath rightClipPath = new WPainterPath(); rightClipPath.addRect( this.hv(new WTransform(1, 0, 0, 1, selectionRect.getWidth(), 0).map(selectionRect))); painter.setClipPath( this.hv( new WTransform(1, 0, 0, 1, left - selectionRect.getRight(), -top) .multiply( new WTransform() .translate( this.transform_.getValue().map(selectionRect.getTopRight())))) .map(rightClipPath)); painter.drawPath(curve); painter.setClipping(false); } else { painter.setPen(this.getSeriesPen()); painter.drawPath(curve); } if (this.getMethod() == WPaintedWidget.Method.HtmlCanvas) { WApplication app = WApplication.getInstance(); StringBuilder ss = new StringBuilder(); ss.append("new Wt3_3_5.WAxisSliderWidget(") .append(app.getJavaScriptClass()) .append(",") .append(this.getJsRef()) .append(",") .append(this.getObjJsRef()) .append(",") .append("{chart:") .append(this.chart_.getCObjJsRef()) .append(",transform:") .append(this.transform_.getJsRef()) .append(",rect:function(){return ") .append(rect.getJsRef()) .append("},drawArea:") .append(drawArea.getJsRef()) .append(",series:") .append(this.seriesColumn_) .append("});"); this.doJavaScript(ss.toString()); } Utils.copyList(segmentsBak, this.chart_.getAxis(Axis.XAxis).segments_); this.chart_.getAxis(Axis.XAxis).renderInterval_ = renderIntervalBak; }
/** * Checks a function for RESTFful annotations. * * @return {@code true} if module contains relevant annotations * @throws QueryException query exception */ boolean analyze() throws QueryException { // parse all annotations final EnumSet<HTTPMethod> mth = EnumSet.noneOf(HTTPMethod.class); final boolean[] declared = new boolean[function.args.length]; boolean found = false; final int as = function.ann.size(); for (int a = 0; a < as; a++) { final QNm name = function.ann.names[a]; final Value value = function.ann.values[a]; final byte[] local = name.local(); final byte[] uri = name.uri(); final boolean rexq = eq(uri, QueryText.RESTXQURI); if (rexq) { if (eq(PATH, local)) { // annotation "path" if (path != null) error(ANN_TWICE, "%", name.string()); path = new RestXqPath(toString(value, name)); for (final String s : path) { if (s.trim().startsWith("{")) checkVariable(s, AtomType.AAT, declared); } } else if (eq(CONSUMES, local)) { // annotation "consumes" strings(value, name, consumes); } else if (eq(PRODUCES, local)) { // annotation "produces" strings(value, name, produces); } else if (eq(QUERY_PARAM, local)) { // annotation "query-param" queryParams.add(param(value, name, declared)); } else if (eq(FORM_PARAM, local)) { // annotation "form-param" formParams.add(param(value, name, declared)); } else if (eq(HEADER_PARAM, local)) { // annotation "header-param" headerParams.add(param(value, name, declared)); } else if (eq(COOKIE_PARAM, local)) { // annotation "cookie-param" cookieParams.add(param(value, name, declared)); } else { // method annotations final HTTPMethod m = HTTPMethod.get(string(local)); if (m == null) error(ANN_UNKNOWN, "%", name.string()); if (!value.isEmpty()) { // remember post/put variable if (requestBody != null) error(ANN_TWICE, "%", name.string()); if (m != POST && m != PUT) error(METHOD_VALUE, m); requestBody = checkVariable(toString(value, name), declared); } if (mth.contains(m)) error(ANN_TWICE, "%", name.string()); mth.add(m); } } else if (eq(uri, QueryText.OUTPUTURI)) { // serialization parameters final String key = string(local); final String val = toString(value, name); if (output.get(key) == null) error(UNKNOWN_SER, key); output.set(key, val); } found |= rexq; } if (!mth.isEmpty()) methods = mth; if (found) { if (path == null) error(ANN_MISSING, PATH); for (int i = 0; i < declared.length; i++) if (!declared[i]) error(VAR_UNDEFINED, function.args[i].name.string()); } return found; }