/* * Copyright (c) 2008, 2010 Borland Software Corporation 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: * Alexander Shatalin (Borland) - initial API and implementation */ package org.eclipse.gmf.internal.xpand.qvtlibraries; import java.util.Arrays; import java.util.List; import org.eclipse.m2m.qvt.oml.blackbox.java.Operation; import org.eclipse.m2m.qvt.oml.blackbox.java.Operation.Kind; import org.eclipse.ocl.util.CollectionUtil; public class XpandStringOperations { @Operation(contextual = true, kind = Kind.HELPER) public static String xpandToFirstLower(String self) { if ((self == null) || (self.length() == 0)) { return self; } char[] arr = self.toCharArray(); arr[0] = Character.toLowerCase(arr[0]); return new String(arr); } @Operation(contextual = true, kind = Kind.HELPER) public static List<String> xpandToCharList(String self) { List<String> rv = CollectionUtil.<String> createNewSequence(); for (int i = 0; i < self.length(); i++) { rv.add(self.substring(i, i + 1)); } return rv; } /* * Not in use in current templates, however kept for migration simplicity */ @Operation(contextual = true, kind = Kind.HELPER) public static String xpandSubstring(String self, Integer beginIndex) { return self.substring(beginIndex); } @Operation(contextual = true, kind = Kind.HELPER) public static String xpandReplaceAll(String self, String regex, String replacement) { return self.replaceAll(regex, replacement); } @Operation(contextual = true, kind = Kind.HELPER) public static String xpandReplaceFirst(String self, String regex, String replacement) { return self.replaceFirst(regex, replacement); } @Operation(contextual = true, kind = Kind.HELPER) public static List<String> xpandSplit(String self, String regex) { return CollectionUtil.createNewSequence(Arrays.asList(self.split(regex))); } @Operation(contextual = true, kind = Kind.HELPER) public static Boolean xpandMatches(String self, String regex) { return self.matches(regex); } }