/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project .
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file , You can obtain one at http : //mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice :
*
* Licensed to the Apache Software Foundation ( ASF ) under one or more
* contributor license agreements . See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership . The ASF licenses this file to you under the Apache
* License , Version 2 . 0 ( the " License " ) ; you may not use this file
* except in compliance with the License . You may obtain a copy of
* the License at http : //www.apache.org/licenses/LICENSE-2.0 .
*/
module com { module sun { module star { module script {
/** This service provides a widening converter converting from one type to another,
if possible .
< p > What is possible ?
< ul >
< li > byte : byte , ( short * 1 ) , ( long * 1 ) , ( hyper * 1 ) , ( float * 1 ) , ( double * 1 ) , ( enum * 2 ) , ( any * 3 ) , boolean , ( char * 4 ) , ( string * 5 ) < / li >
< li > short : byte , short , ( long * 1 ) , ( hyper * 1 ) , ( float * 7 ) , ( double * 7 ) , ( enum * 2 ) , ( any * 3 ) , boolean , char , ( string * 5 ) < / li >
< li > long : byte , short , long , ( hyper * 1 ) , ( float * 7 ) , ( double * 7 ) , enum , ( any * 3 ) , boolean , char , ( string * 5 ) < / li >
< li > hyper : byte , short , long , hyper , ( float * 7 ) , ( double * 7 ) , enum , ( any * 3 ) , boolean , char , ( string * 5 ) < / li >
< li > float : byte , short , long , hyper , float , ( double * 7 ) , ( enum * 8 ) , ( any * 3 ) , boolean , char , ( string * 5 ) < / li >
< li > double : byte , short , long , hyper , float , double , enum , ( any * 3 ) , boolean , char , ( string * 5 ) < / li >
< li > enum : ( byte * 9 ) , ( short * 9 ) , ( long * 9 ) , ( hyper * 9 ) , ( float * 9 ) , ( double * 9 ) , ( enum * 10 ) , ( any * 3 ) , ( string * 11 ) < / li >
< li > void : ok for all types < / li >
< li > any : ok for all types < / li >
< li > boolean : byte , short , long , hyper , float , double , ( any * 3 ) , boolean , char , ( string * 12 ) . 0 = > false , ! = 0 = > true < / li >
< li > char : byte , short , ( long * 1 ) , ( hyper * 1 ) , ( float * 7 ) , ( double * 7 ) , enum , ( any * 3 ) , boolean , char , ( string * 13 ) < / li >
< li > string : byte , short , long , hyper , float , double , enum , ( any * 3 ) , boolean , char , string < / li >
< li > struct : ( any * 3 ) , ( struct * 14 ) < / li >
< li > interface : ( any * 3 ) , ( struct * 14 ) < / li >
< li > exception : ( any * 3 ) , ( exception * 14 ) < / li >
< li > union : ( any * 3 ) , ( union * 14 ) < / li >
< li > sequence : ( any * 3 ) , ( sequence * 15 ) < / li >
< / ul >
rules :
< ul >
< li > 1 : only converts if the value is in the range of the target type . < / li >
< li > 2 : only converts if the value , not the position , of the enum is in the range of the target type . < / li >
< li > 3 : get value until it is not an any . Then convert it with the other rules . < / li >
< li > 4 : only converts if the value of the character is between 0 - 255 . < / li >
< li > 5 : only converts if the value represents a decimal , hexadecimal ( 0 x . . . ) or a floating point number .
Examples : 10 , 0 x10 , 10 . 045 , 10 , 555 , + 10 , + 10 . 6 e10 , - 10 . 6 e - 10 , . 16 . < / li >
< li > 7 : only converts if the value is in the range of the target type .
The value is rounded to an integer . < / li >
< li > 8 : only converts if the float can be converted back to the same enum value . < / li >
< li > 9 : only converts if the number is one of the enumeration type values . Normally you need
reflection information of the enum type . < / li >
< li > 10 : only converts if it is the same enumeration type . < / li >
< li > 11 : only converts if the string contains the name of an enumeration type value . Normally you need
core reflection information of the enum type . < / li >
< li > 12 : only converts if the value of the string is " 1 " , " true " or " 0 " , " false " . The comparison
is case insensitive . < / li >
< li > 13 : only converts if the length of the string is 1 or 0 . < / li >
< li > 14 : only converts if the types are equal or the source type is derived from the destination
type . < / li >
< li > 15 : only converts if each element of the source sequence can be converted to an element
of the destination sequence . < / li >
< / ul >
*/
published service Converter: XTypeConverter;
}; }; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 in Prozent C=87 H=93 G=89
¤ Dauer der Verarbeitung: 0.9 Sekunden
¤
*© Formatika GbR, Deutschland