source: java/main/src/main/java/com/framsticks/params/types/StringParam.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1package com.framsticks.params.types;
2
3import com.framsticks.params.CastFailure;
4import com.framsticks.params.ParamBuilder;
5import com.framsticks.params.PrimitiveParam;
6import com.framsticks.params.ReassignResult;
7
8import javax.annotation.concurrent.Immutable;
9
10/**
11 * @author Piotr Sniegowski
12 */
13@Immutable
14public class StringParam extends PrimitiveParam<String> {
15
16
17
18        /**
19         * @param builder
20         */
21        public StringParam(ParamBuilder builder) {
22                super(builder);
23        }
24
25        @Override
26        public Class<?> getStorageType() {
27                return String.class;
28        }
29
30        @Override
31        public ReassignResult<String> reassign(Object newValue, Object oldValue) throws CastFailure {
32                if (newValue == null) {
33                        return new ReassignResult<String>(null);
34                }
35                if (newValue instanceof String) {
36                        return ReassignResult.create((String) newValue);
37                }
38                return ReassignResult.create(newValue.toString());
39                // return super.reassign(newValue, oldValue);
40        }
41
42        @Override
43        public String getFramsTypeName() {
44                return "s";
45        }
46
47        private static final String SEPARATOR = System.getProperty("line.separator");
48
49        @Override
50        public String serialize(Object value) {
51                if (value == null) {
52                        return "";
53                }
54                assert value instanceof String;
55                String s = (String) value;
56                return (s.contains(SEPARATOR) ? (s = "~" + SEPARATOR + s + "~") : s);
57        }
58}
Note: See TracBrowser for help on using the repository browser.