75 lines
2.4 KiB
C++
75 lines
2.4 KiB
C++
|
/*
|
||
|
==============================================================================
|
||
|
|
||
|
This file is part of the JUCE library.
|
||
|
Copyright (c) 2017 - ROLI Ltd.
|
||
|
|
||
|
JUCE is an open source library subject to commercial or open-source
|
||
|
licensing.
|
||
|
|
||
|
The code included in this file is provided under the terms of the ISC license
|
||
|
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
|
||
|
To use, copy, modify, and/or distribute this software for any purpose with or
|
||
|
without fee is hereby granted provided that the above copyright notice and
|
||
|
this permission notice appear in all copies.
|
||
|
|
||
|
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||
|
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||
|
DISCLAIMED.
|
||
|
|
||
|
==============================================================================
|
||
|
*/
|
||
|
|
||
|
namespace juce
|
||
|
{
|
||
|
|
||
|
Identifier::Identifier() noexcept {}
|
||
|
Identifier::~Identifier() noexcept {}
|
||
|
|
||
|
Identifier::Identifier (const Identifier& other) noexcept : name (other.name) {}
|
||
|
|
||
|
Identifier::Identifier (Identifier&& other) noexcept : name (static_cast<String&&> (other.name)) {}
|
||
|
|
||
|
Identifier& Identifier::operator= (Identifier&& other) noexcept
|
||
|
{
|
||
|
name = static_cast<String&&> (other.name);
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
|
Identifier& Identifier::operator= (const Identifier& other) noexcept
|
||
|
{
|
||
|
name = other.name;
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
|
Identifier::Identifier (const String& nm)
|
||
|
: name (StringPool::getGlobalPool().getPooledString (nm))
|
||
|
{
|
||
|
// An Identifier cannot be created from an empty string!
|
||
|
jassert (nm.isNotEmpty());
|
||
|
}
|
||
|
|
||
|
Identifier::Identifier (const char* nm)
|
||
|
: name (StringPool::getGlobalPool().getPooledString (nm))
|
||
|
{
|
||
|
// An Identifier cannot be created from an empty string!
|
||
|
jassert (nm != nullptr && nm[0] != 0);
|
||
|
}
|
||
|
|
||
|
Identifier::Identifier (String::CharPointerType start, String::CharPointerType end)
|
||
|
: name (StringPool::getGlobalPool().getPooledString (start, end))
|
||
|
{
|
||
|
// An Identifier cannot be created from an empty string!
|
||
|
jassert (start < end);
|
||
|
}
|
||
|
|
||
|
Identifier Identifier::null;
|
||
|
|
||
|
bool Identifier::isValidIdentifier (const String& possibleIdentifier) noexcept
|
||
|
{
|
||
|
return possibleIdentifier.isNotEmpty()
|
||
|
&& possibleIdentifier.containsOnly ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-:#@$%");
|
||
|
}
|
||
|
|
||
|
} // namespace juce
|